并行计算简介
⚫ 并发:两个或多个事件在同一时间间隔内发生,实质是物理 CPU 在若干程序之间多路复用,并发
性是对有限物理资源强执行使多用户共享以提高效率。
⚫ 并行:两个或者多个事件在同一时刻发生,在多个程序环境下,并行性是的多个程序在同一时刻
可以在不同处理单元上同时执行
⚫ 并行计算:同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力
的一种有效手段。具有强大的数值计算能力和数据处理能力。
⚫ 进程:
广义:具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调
度的一个独立单位。
狭义:正在运行的程序的实例
⚫ 线程:
操作系统能够进行调度的最小单位。包含于进程中,是进程的实际运作单位。一个进程可以包含
多个线程。
同一进程中的线程刻意共享该进程的资源,但不同线程可以有自己的调用栈、寄存器和本地储存。
⚫ 超线程:
超线程技术把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,让单个处理器就能使用线
程级的并行计算,进而兼容多线程操作系统和软件。超线程技术充分利用空闲 CPU 资源,在相同
时间内完成更多工作
虽然采用超线程技术能够同时执行两个线程,当两个线程同时需要某个资源时,其中一个线程必
须让出资源暂时挂起,直到这些资源空闲以后才能继续。因此,超线程的性能并不等于两个 CPU
的性能。而且,超线程技术的 CPU 需要芯片组、操作系统和应用软件的支持,才能比较理想地发
挥该项技术的优势。
⚫ 常用并行计算编程模型:MPI;pthread;OpenMP;OpenACC;OpenCL;CUDA
⚫ 两大类:多进程和共享内存
主流模型:MPI, pthread, OpenMP, OpenACC, OpenCL, CUDA
⚫ MPI: Message Passing Interface
MPI 是一种标准,不是具体实现
实现,MPICH,MPICH2,OPENMPI,MVAPICH
将进程独立分配与