Qt编写OpenMP程序--HelloWorld
本程序是在Ubuntu Linux環(huán)境下編寫成的。這里包括C++語言程序和C語言程序,兩者在Qt項(xiàng)目設(shè)置參數(shù)上略有不同,需要注意。
OpenMp提供并行描述,可以充分使用計(jì)算機(jī)系統(tǒng)的CPU資源。
step1.創(chuàng)建Qt的C++項(xiàng)目,項(xiàng)目文件如下:
TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle #CONFIG -= qtQMAKE_CXXFLAGS += -fopenmpLIBS += -fopenmpSOURCES += main.cpp其中,需要將行“CONFIG -= qt”注釋。同時(shí)添加以下兩行(如上):
QMAKE_CXXFLAGS += -fopenmp
LIBS += -fopenmp
step2.編寫C++源程序如下:
#include <iostream>using namespace std;int main() {#pragma omp parallel forfor (char i = 'a'; i <= 'z'; i++)cout << "Hello World! " << i << endl;return 0; }
程序中,for語句之前添加以下語句,將for循環(huán)并行化處理:
#pragma omp parallel for
step3.運(yùn)行程序
運(yùn)行結(jié)果如下(可以看出,由于循環(huán)是并發(fā)運(yùn)行,所以輸出順序與一般程序不同):
Hello World! a
Hello World! b
Hello World! c
Hello World! d
Hello World! e
Hello World! f
Hello World! g
Hello World! o
Hello World! p
Hello World! q
Hello World! r
Hello World! s
Hello World! t
Hello World! u
Hello World! v
Hello World! w
Hello World! x
Hello World! y
Hello World! z
Hello World! h
Hello World! i
Hello World! j
Hello World! k
Hello World! l
Hello World! m
Hello World! n
運(yùn)行結(jié)果的截屏如下:
Qt項(xiàng)目與C語言源程序:
1.Qt項(xiàng)目文件
TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle #CONFIG -= qtQMAKE_CFLAGS += -fopenmpLIBS += -fopenmpSOURCES += main.c
需要注意的是,這里使用的參數(shù)是QMAKE_CFLAGS(C++項(xiàng)目是QMAKE_CXXFLAGS)。
2.C語言程序
#include <stdio.h>int main(void) {char i;#pragma omp parallel forfor (i='a'; i<='z'; i++)printf("Hello World! %c\n", i);return 0; }
轉(zhuǎn)載于:https://www.cnblogs.com/tigerisland/p/7564282.html
總結(jié)
以上是生活随笔為你收集整理的Qt编写OpenMP程序--HelloWorld的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS魔法堂:说说Float那个被埋没的
- 下一篇: [转]Asp.Net Core 简单的使