VS2008 MP库函数,调出mpi.h库,找到相关的源码如下:
// 设置并行线程数 _OMPIMP void _OMPAPI omp_set_num_threads( int _Num_threads ); // 获取当前并行线程数 _OMPIMP int _OMPAPI omp_get_num_threads( void ); // 获取当前系统最大可并行运行的线程数 _OMPIMP int _OMPAPI omp_get_max_threads( void ); // 获取当前运行线程的ID,注意和操作系统中的线程ID不同 _OMPIMP int _OMPAPI omp_get_thread_num( void ); // 获取当前系统中处理器数目 _OMPIMP int _OMPAPI omp_get_num_procs( void ); // 功能启用或禁用线程数动态调整可用于并行区域的执行 _OMPIMP void _OMPAPI omp_set_dynamic( int _Dynamic_threads ); // 函数返回非零值,如果线程的动态调整启用,并且否则返回 0。 _OMPIMP int _OMPAPI omp_get_dynamic( void ); //即在并行,执行并行区域中的动态区域调用 omp_in_parallel 函数返回非零值;否则,则返回 0。 _OMPIMP int _OMPAPI omp_in_parallel( void ); //使嵌套并行。 _OMPIMP void _OMPAPI omp_set_nested( int _Nested ); //返回一个值嵌套并行是否启用。 _OMPIMP int _OMPAPI omp_get_nested( void ); // 初始化一个简单锁 _OMPIMP void _OMPAPI omp_init_lock( omp_lock_t * _Lock ); //函数的配对操作函数,关闭一个锁 _OMPIMP void _OMPAPI omp_destroy_lock( omp_lock_t * _Lock ); //上锁操作 _OMPIMP void _OMPAPI omp_set_lock( omp_lock_t * _Lock ); // 解锁操作,要和omp_set_lock函数配对使用 _OMPIMP void _OMPAPI omp_unset_lock( omp_lock_t * _Lock ); //函数可测试一个简单的锁。 _OMPIMP int _OMPAPI omp_test_lock( omp_lock_t * _Lock ); //函数初始化可套上的锁。 _OMPIMP void _OMPAPI omp_init_nest_lock( omp_nest_lock_t * _Lock ); //函数等待,直到可套上的锁可用。 _OMPIMP void _OMPAPI omp_destroy_nest_lock( omp_nest_lock_t * _Lock ); //函数等待,直到可套上的锁可用。 _OMPIMP void _OMPAPI omp_set_nest_lock( omp_nest_lock_t * _Lock ); // 函数释放可套上的锁 _OMPIMP void _OMPAPI omp_unset_nest_lock( omp_nest_lock_t * _Lock ); //函数可测试可套上的锁。 _OMPIMP int _OMPAPI omp_test_nest_lock( omp_nest_lock_t * _Lock ); //功能 (返回一个双精度浮点值等于 " 的壁钟时从时间 “时间过去”。 实际 “时间过去”是任意的,但是,确保不在应用程序执行更改。 _OMPIMP double _OMPAPI omp_get_wtime( void ); //函数返回一个双精度浮点值等于秒数在连续的时钟计时周期之间的 _OMPIMP double _OMPAPI omp_get_wtick( void );
具体参考:http://msdn.microsoft.com/zh-cn/library/k1h4zbed.aspx