1. OpenMP简介
OpenMP是一个共享存储并行系统上的应用程序接口。它规范了一系列的编译制导、运行库例程和环境变量,但OpenMP完全依赖用户保证制导的正确性,即使用户给出的制导是错误的,OpenMP兼容的实现也不要求进行错误检查,而是可以简单地忽略。同时,它提供了C/C++和FORTRAN等的应用编程接口,已经应用到UNIX、Windows NT等多种平台上。
OpenMP使用FORK-JOIN并行执行模型。所有的OpenMP程序开始于一个单独的主线程(Master Thread)。主线程会一直串行地执行,直到遇到第一个并行域(Parallel Region)才开始并行执行。接下来的过程如下:①FORK:主线程创建一队并行的线程,然后,并行域中的代码在不同的线程队中并行执行;②JOIN:当诸线程在并行域中执行完之后,它们或被同步或被中断,最后只有主线程在执行。
2. OpenMP计算实例
(1) 实验环境:
OpenMP是一个共享存储并行系统上的应用程序接口。它规范了一系列的编译制导、运行库例程和环境变量,但OpenMP完全依赖用户保证制导的正确性,即使用户给出的制导是错误的,OpenMP兼容的实现也不要求进行错误检查,而是可以简单地忽略。同时,它提供了C/C++和FORTRAN等的应用编程接口,已经应用到UNIX、Windows NT等多种平台上。
OpenMP使用FORK-JOIN并行执行模型。所有的OpenMP程序开始于一个单独的主线程(Master Thread)。主线程会一直串行地执行,直到遇到第一个并行域(Parallel Region)才开始并行执行。接下来的过程如下:①FORK:主线程创建一队并行的线程,然后,并行域中的代码在不同的线程队中并行执行;②JOIN:当诸线程在并行域中执行完之后,它们或被同步或被中断,最后只有主线程在执行。
2. OpenMP计算实例
(1) 实验环境:
若在机群上,Linux用户可直接使用系统自带的SSH命令登陆,在Windows环境下,可使用xshell工具,或者putty工具,本文使用的是putty。putty默认的鼠标按键行为是右键复制,Windows的用户这点可能不习惯,可以在Window的Selection中的Action of mouse buttons下设置成Windows: