高性能计算中常用的一些术语及概念

近期试用超算,经常碰到一些HPC中的一些术语,这里试着总结下

核(core)
实际执行指令的硬件计算单元。通常,一个处理器中有多个内核

插槽(socket)
一组共享本地的核心,例如共享的缓存。这使得将计算工作分布在插槽内的内核上比分布在不同插槽内的内核上更为有效。现代处理器通常具有多个插槽。

节点(node)

一组共享本地的socket,例如,无需任何网络硬件即可共享对同一内存的访问。普通笔记本电脑或台式计算机是一个节点。节点通常是用户可以请求使用的大型计算集群中的最小数量。

线程(thread)
内核执行的指令流。有许多不同的编程来创建和管理在多个线程上的扩展计算,例如OpenMP,pthreads,winthreads,CUDA,OpenCL和OpenACC。某些类型的硬件可以将一个以上的软件线程映射到一个内核。在Intel x86处理器上,这称为“超线程”,而更笼统的概念通常称为“同时多线程”的SMT。例如,IBM Power8每个核心最多可以使用8个硬件线程。通常可以在硬件BIOS中或通过Linux操作系统中的设置启用或禁用此功能。

MPI
主导的多节点并行化方案,提供了一种标准化的语言,可以使用该语言编写跨多个节点工作的程序。

进程(rank)
在MPI中,rank是多节点并行化方案中使用的最小硬件分组。该分组可由用户控制,并且可能对应于核心,插槽,节点或一组节点。最佳选择随硬件,软件和计算任务的不同而不同。有时,一个MPI rank 被称为一个 MPI process。

GPU
图形处理单元,对于特定种类的计算工作负载,通常比常规处理器更快,更高效。GPU始终与特定节点关联,并且通常与该节点内的特定插槽关联。

OpenMP
许多编译器支持的一种标准化技术,可以在多个内核上共享计算工作负载。通常与MPI结合使用以实现MPI / OpenMP混合并行性。

CUDA
由NVIDIA开发的专有并行计算框架和API,可以针对其加速器硬件。GROMACS使用CUDA对NVIDIA硬件进行GPU加速支持。

OpenCL的
一个基于开放标准的并行计算框架,该框架包括一个基于C99的编译器和一个针对异构硬件和加速器硬件的编程API。

SIMD
一种CPU指令,现代CPU内核可通过这种指令在单个周期内执行多个浮点指令。

这里Rank 和 thread 区别,可以把任务分为多个 rank, 而一个rank 中又可以运行多个 thread

你可能感兴趣的:(高性能计算,高性能计算)