dev c++下 OpenMP的配置(下附omp.h头文件)

本人以dev c++为测试

默认dev-c++中一般不包含omp的头文件,这时候需要把omp.h文件保存到指定的位置,与此同时嗨需要编译的时候需要加上-fopenmp一句才可以成功编译。具体做法是:选择dev-c++菜单中依次点击:工具栏-工具-编译选项-勾选“编译时加入如下命令”-输入“-fopenmp”即可。(本机为四线程)

1.配置页面

2.测试程序

3.测试结果

4.omp.h文件

//-----------------------------------------------------------------------------
//?OpenMP?runtime?support?library?for?Visual?C++
//?Copyright?(C)?Microsoft?Corporation.??All?rights?reserved.
//-----------------------------------------------------------------------------
?
//?OpenMP?C/C++?Version?2.0?March?2002
?
#pragma?once
?
#if?defined(__cplusplus)
extern?"C"?{
#endif
?
#define?_OMPAPI?????__cdecl
?
#if?!defined(_OMP_LOCK_T)
#define?_OMP_LOCK_T
typedef?void?*?omp_lock_t;
#endif
?
#if?!defined(_OMP_NEST_LOCK_T)
#define?_OMP_NEST_LOCK_T
typedef?void?*?omp_nest_lock_t;
#endif
?
#if?!defined(_OPENMP)
?
#if?defined(_DEBUG)
????#pragma?comment(lib,?"vcompd")
#else???//?_DEBUG
????#pragma?comment(lib,?"vcomp")
#endif??//?_DEBUG
?
#endif?//?_OPENMP
?
#if?!defined(_OPENMP_NOFORCE_MANIFEST)
?
????#include?<ompassem.h>
?
????#if?defined(_DEBUG)
?
????????#if?defined(_M_IX86)
????????????#pragma?comment(linker,"/manifestdependency:\"type='win32'?"????????????\
????????????????"name='"?__OPENMP_ASSEMBLY_NAME_PREFIX?".DebugOpenMP'?"?????????\
????????????????"version='"?__OPENMP_ASSEMBLY_VERSION?"'?"??????????????????????????\
????????????????"processorArchitecture='x86'?"??????????????????????????????????\
????????????????"publicKeyToken='"?_VC_ASSEMBLY_PUBLICKEYTOKEN?"'\"")
????????#elif?defined(_M_AMD64)
????????????#pragma?comment(linker,"/manifestdependency:\"type='win32'?"????????????\
????????????????"name='"?__OPENMP_ASSEMBLY_NAME_PREFIX?".DebugOpenMP'?"?????????\
????????????????"version='"?__OPENMP_ASSEMBLY_VERSION?"'?"??????????????????????????\
????????????????"processorArchitecture='amd64'?"??????????????????????????????????\
????????????????"publicKeyToken='"?_VC_ASSEMBLY_PUBLICKEYTOKEN?"'\"")
????????#elif?defined(_M_IA64)
????????????#pragma?comment(linker,"/manifestdependency:\"type='win32'?"????????????\
????????????????"name='"?__OPENMP_ASSEMBLY_NAME_PREFIX?".DebugOpenMP'?"?????????\
????????????????"version='"?__OPENMP_ASSEMBLY_VERSION?"'?"??????????????????????????\
????????????????"processorArchitecture='ia64'?"??????????????????????????????????\
????????????????"publicKeyToken='"?_VC_ASSEMBLY_PUBLICKEYTOKEN?"'\"")
????????#endif
?
????#else???//?_DEBUG
?
????????#if?defined(_M_IX86)
????????????#pragma?comment(linker,"/manifestdependency:\"type='win32'?"????????????\
????????????????"name='"?__OPENMP_ASSEMBLY_NAME_PREFIX?".OpenMP'?"??????????????\
????????????????"version='"?__OPENMP_ASSEMBLY_VERSION?"'?"??????????????????????????\
????????????????"processorArchitecture='x86'?"??????????????????????????????????\
????????????????"publicKeyToken='"?_VC_ASSEMBLY_PUBLICKEYTOKEN?"'\"")
????????#elif?defined(_M_AMD64)
????????????#pragma?comment(linker,"/manifestdependency:\"type='win32'?"????????????\
????????????????"name='"?__OPENMP_ASSEMBLY_NAME_PREFIX?".OpenMP'?"??????????????\
????????????????"version='"?__OPENMP_ASSEMBLY_VERSION?"'?"??????????????????????????\
????????????????"processorArchitecture='amd64'?"??????????????????????????????????\
????????????????"publicKeyToken='"?_VC_ASSEMBLY_PUBLICKEYTOKEN?"'\"")
????????#elif?defined(_M_IA64)
????????????#pragma?comment(linker,"/manifestdependency:\"type='win32'?"????????????\
????????????????"name='"?__OPENMP_ASSEMBLY_NAME_PREFIX?".OpenMP'?"??????????????\
????????????????"version='"?__OPENMP_ASSEMBLY_VERSION?"'?"??????????????????????????\
????????????????"processorArchitecture='ia64'?"??????????????????????????????????\
????????????????"publicKeyToken='"?_VC_ASSEMBLY_PUBLICKEYTOKEN?"'\"")
????????#endif
?
????#endif??//?_DEBUG
?
#endif??//?_OPENMP_NOFORCE_MANIFEST
?
#if?!defined(_OMPIMP)
#define?_OMPIMP?????__declspec(dllimport)
#endif
?
_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
????);
?
_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
????);
?
_OMPIMP?int?_OMPAPI
omp_get_dynamic(
????void
????);
?
_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
????);
?
_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
????);
?
#if?defined(__cplusplus)
}
#endif

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本
### 回答1: OpenMP是一种用于并行化计算的协议,可以显著提高计算速度。为了在编写OpenMP程序时使用OpenMP API,需要包括头文件omp.h”,该文件定义了OpenMP所需的函数、变量和常量。 下载omp.h头文件的方法很简单,只需在网络上搜索“omp.h”即可找到源代码。例如,在在LLVM OpenMP runtime library提供的源代码中,可以找到omp.h头文件并下载它。 下载后,需要将omp.h文件放到编译器可用的位置或系统路径中,以便编译程序时可以找到它。此外,还需要确保使用的编译器支持OpenMP,并使用正确的编译器选项启用OpenMP。 总之,下载omp.h头文件对于使用OpenMP编写高效的并行程序是非常重要的,只需在网络上搜索即可找到并下载它。 ### 回答2: OpenMP是一种共享内存并行编程的API(应用程序接口),它允许开发人员在编写应用程序时利用多个处理器或核心进行并行处理。OpenMP要求需要引入omp.h头文件才能调用其相关函数和指令。 为了下载omp.h头文件,我们可以通过以下步骤来实现: 1.访问OpenMP的官方网站(https://www.openmp.org/)并下载OpenMP的最新版本。官方网站提供了多个版本的OpenMP,包括源代码和预编译库,可以根据自己的需要选择。 2.在下载页面中找到对应的操作系统和编译器版本,例如Windows平台的Microsoft Visual Studio编译器。 3.下载OpenMP的源代码或预编译库,解压后可以看到包含omp.h头文件的文件夹。 4.将omp.h头文件复制到您的项目目录中即可开始使用OpenMP并行编程。 除了下载OpenMP的官方版本外,还可以通过安装并行编程工具套件(Parallel Programming Toolkits)来获取omp.h头文件。这些工具套件通常包括OpenMP头文件和库文件,方便开发人员在集成开发环境(IDE)中使用OpenMP并行编程。 总之,下载OpenMPomp.h头文件是使用OpenMP并行编程必要的步骤之一。通过官方网站下载或安装并行编程工具套件,我们可以轻松地获取omp.h头文件并开始并行编程。 ### 回答3: 要使用OpenMP,需要下载omp.h头文件,这个头文件包含了OpenMP的所有关键字和函数。 首先,需要确保计算机上已安装OpenMP编译器,例如GCC或Clang。在安装完以后,可以从对应的编译器安装路径中找到omp.h文件。 如果没有找到omp.h文件,可以尝试在命令行中使用以下命令搜索文件所在位置: ``` find / -name "omp.h" -print 2>/dev/null ``` 该命令将在计算机中查找名为omp.h的文件,如果找到,会在命令行中显示其路径。 另外,还可以从OpenMP官方网站或GitHub等开源网站上下载omp.h头文件。下载后将该文件复制到合适的目录下。 使用OpenMP时,只需要在编写代码时包含该头文件即可: ``` #include <omp.h> ``` 这个头文件中包含的函数和关键字可供使用,例如omp_get_thread_num()可以获取当前线程的编号,omp_parallel_for()可以用于并行化循环等等。 总之,使用OpenMP需要下载omp.h头文件,并确保其被正确包含在代码中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值