openmp环境

 

Windows openmp编译环境

 

Microsoft Visual Stuidio2008之后都支持openmp,所以我下载了最新的Microsoft Visual Stuidio2019

安装步骤可以参考https://www.cnblogs.com/Rasang/p/9733400.html

一.下载

首先我们要进入微软官网下载安装最新的程序

下载图中的 community 2017 ,下载完后打开程序

二.安装

打开后点击继续,进入文件的提取

待提取完成后就进入如下界面

如果是用于C语言或者C++的编写请选择红框中一项,这将占据约6G左右的内存,请确保你的电脑有足够的内存空间,然后即可开始安装

如图,如果你的网速不够给力,这将占据你大量的时间,我建议你先来局王者或者先吃把鸡,又或者刷会PTA消磨时光

安装结束后就会重启电脑,重启后就可以看到主界面啦

 

点击启动

进入界面,创建控制台应用项目

然后对项目点击右键 打开 属性 -> c/c++->语言->openmp支持 (是)    ps:把平台换为x64

同时把符合模式置为否,否则出现c2338错误

即:

two-phase name lookup应该是一个关于C++模板的功能,错误提示应该是说它不支持C++/CLI, C++/CX, or OpenMP。

我的工程里面主要是c语言的代码,引用了一些C++的类库,然后并没有使用C++的模板,所以我把two-phase name lookup关闭就好了。

解决步骤:

项目->属性->C/C++->语言->符合模式:否

 

同时设置Debug为x64,否则多线程无效

一系列前奏都做好了,接下来就是编程,实现多线程咯

// OpenMP.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include"omp.h"	/*包含头文件omp.h*/
#include <iostream>  
#include<stdio.h>
#define NUM_THREADS 4
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 1
int main(int argc,char *argv[])
{
	int nthreads, tid;
	omp_set_num_threads(NUM_THREADS);/*为后面的并行区设置线程数目*/
#pragma omp parallel				/*编译指导语句,创建一个并行区*/
{
	tid = omp_get_thread_num(); /*得到当前线程的标识号(线程号)*/
	printf("Hello World from OMP thread %d\n", tid);
	if (tid == 0)
	{
		nthreads = omp_get_num_threads();/*得到并行区中总的线程数目*/
		printf("Number of threads %d\n", nthreads);
	}
}
	//std::cout << "Hello World!\n";
	return 0;
}

 

 

在Linux环境下,单机环境,和之前MPI环境一致,编译、连接并运行这个简单的OpenMP程序。

1.建立test.c,并编写上述代码

2.使用gcc编译器、-fopenmp编译选项编译并连接该文件。

gcc -fopenmp -o test test.c

生成可执行程序test

3.运行可执行文件./test

 

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值