openacc编译
Ⅰ 怎么实现在GPU上运行程序
用GPU跑没那么简单,需要重新编译程序,你可以看看CUDA或者OpenACC
Ⅱ 大型计算机/超级计算机一般采用什么编程语言
主要是C 和 Fortran,因为大部分的遗留代码都是用这些编写的。 然后配合MPI、CUDA、OpenMP、IB、OpenACC等库进行并行的操作。也可能有专门为特定超算架构编写的扩展。
理论上,任何语言只要是配备有相应的扩展或者库就能够使用。 在搭建超算的技术团队,都是有专门负责做并行编译的小组。
Ⅲ 泰坦的软件支持
参见:NVIDIA CUDA
不同于以往以中央处理器作主要数据处理单元或以图形处理器辅助处理数据的超级电脑,泰坦超级电脑以图形处理器为主要的数据处理单元。在初期,不少专案的程序源码一般重新编写或编译以方便泰坦的通用图形处理器运行,而且还要求这些源码能兼容于以中央处理器为主的系统,以便专案可以不仅可以由泰坦进行处理,还能供其它仍使用传统中央处理器架构的超级电脑运行。Oak Ridge Leadership Computing Facility(OLCF)还成立了Center for Accelerated Application Readiness(加速申请中心,CAAR)来帮助科学研究者们重写或重新编译他们所写的代码以供泰坦运作之,并且在英伟达总部举办开发者研习会,让研究人员和程序员学习并使用泰坦和其它类似的超级电脑的架构、编译器和应用程序。
以使研究者们可以和以前一样,以Fortran、C或C++来编写他们的代码而无须学习新的编程语言,并且编译器可以将这些代码编译为通用图形处理器可以高效运作的程序。
“加速编译器指令”包括OpenACC、PGI Accelerator、CAPS HMPP Workbench;“低级图形处理器编程语言”有NVIDIA C for CUDA、PGI CUDA Fortran、OpenCL。这些工具中有部分甚至允许开发者在不了解关于NVIDIA CUDA的知识的情况下使用。在泰坦上适用的编译器有PGI(Portland Group Compiler Suite,默认使用这个)、GCC、CCE(Cray Compiling Environment)以及英特尔提供的编译器。
即所谓的多核多线程优化,只是更深入、更适合通用图形处理器的架构特性(通用图形处理器拥有比中央处理器多得多的线程和更好的运算并发性)。不过这样的程序源码优化也适用于传统以中央处理器为基础的机器上,这些机器也可以从中获得性能提升。天体物理学家兼程序员Bronson Messer,表示“一个应用程序要将泰坦的性能发挥至极限,必须寻求方法来使通用图形处理器满负载运作,需要明确的是通用图形处理器尽管处理速度很快,但灵活度显然不如中央处理器。”作业管理者也发现,一些计划专案的代码在重写后,在那些不是基于图形处理器的机器上的效率也变得大有提升,“Denovo”专案的程序在基于中央处理器的机器上甚至还比原先获得双倍的性能提升表现。
要求调用图形处理器的进行运算作业的代码变更量因不同专案而变。根据负责NRDF专案的梅瑟博士(Dr. Messer)的意见,他们的代码中调用图形处理器的算法源码只占整个代码中很小的百分比,因为这些程序算法的运算都相对简单,但处理进程重复而且具有平行性。NRDF的程序用CUDA Fortran写成,CUDA Fortran是Fortran语言链接CUDA指令扩充库(NVIDIA CUDA库)给予图形处理器使用的Fortran改进版本。