运行openmp需要安装什么软件?

运行openmp需要安装什么软件?,第1张

不需皮如要什芦旁么额外的软件!

现在最新版的C、C++、Fortran编译器基本上都内置OpenMP支持。

比如gcc、g++、gfortran(GCC套件4.2版之后开始支持)

Intel C++ compiler、Intel Fortran compiler

Microsoft visual C++ (版本8.0或者叫2005之后开始支持)

由支持OpenMP的编译器编译出来的可执行文件可以独立运行,

不再需要额外的什么支持,它会根据源代码里面指定的线程数生成相应线程,

在SMP主机上分布在多个CPU或者多核心上执行陪握橡,单CPU单核则分时多线程执行。

openmp默认使用schedule取决于编译器实现gcc默认使用schedule(dynamic,1)态调度并且块1程序面种调度及其低效看代码都能预期太能比单线程快

态调度种简单理解式计算任务存任务队列面for循环每i值应计算任务每线程每提取批任务计算批少呢前面说块程序面1提取任务困神旁需要 *** 瞎樱作呢任务队列线程共享提取任务前必须加锁读取批队列移除解锁说应该已经知汪橡道原

线程提取计算任务任务完快所16线程排着队逐加锁抢任务解锁让其线程继续抢马发现任务快要重新排队等任务始终处于饥饿状态注意排队候能要占cpu使用busy wait所能看十六核满负荷其实啥没干

我建议使用static schedule或者增加dynamic schedule块比1024取决于循环少般知道每循环执行间基本都并且专用服务器设置affinity其负荷oversubscriptionnuma问题static schedule比较选择每线程做哪些任务需要进行配化openmp本身消耗

openmp的c library gcc可以梁逗散直接编译

mpi或者openmp

这个,你指的是库?

如果是的话,编译时,加上链接库的编译选项就可以。

比如 gcc -hello.c -o hello -lm -lxml -L/usr/local/指稿lib -lts

-lm 链接了math库

-lxml链接了xml库

-L/usr/local/lib -lts 链接了ts库,ts库存在目录/usr/local/lib中

以下以共享库为例: 1) 直接链接 gcc xxx.c ./libmylib.so 2) 配置环境变量 LIBRARY_PATH,把库所在的路径配置进去 gcc xxx.c -lmyku 3) 双橡氏l配置 gcc xxx.c -lmyku -L./ 静态库的链接方法和共享库一致


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8258614.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存