OpenMP程序的编译与运行-实验报告二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
曲阜师范大学
实验报告
课程名称:并行计算
实验名称:OpenMP并行程序的编译和运行姓名:***
学号:**********
班级:2014级全日制研究生
实验日期:2014年10月31
一. 实验目的
1) 在Linux平台上编译和运行OpenMP程序;
2) 在Windows平台上编译和运行OpenMP程序。
二. 实验环境
1) 硬件环境:32核CPU、32G内存计算机;
2) 软件环境:Linux、Win2003、GCC、MPICH、VS2008;
3) Linux登录方式:通过ssh方式(用SecureCRT工具或putty工具,可网上下载)连接曙光集群服务器,用户名:root,密码:********;
4) Windows登录方式:在自己机器上运行。
三. 实验内容
1. Linux下OpenMP程序的编译和运行。OpenMP是一个共享存储并行系统上的应用编程接口,支持C/C++和FORTRAN等语言,编译和运行简单的"Hello World"程序。在Linux下编辑hellomp.c源程序,或在Windows下编辑并通过附件中的FTP工具(端口号:1021)上传,用"gcc -fopenmp -O2 -o hellomp.out hellomp.c"命令编译,用"./hellomp.out"命令运行程序,代码如下:
#include
#include
int main()
{
int nthreads,tid;
omp_set_num_threads(8);
#pragma omp parallel private(nthreads,tid)
{
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 is %d\n",nthreads);
}
}
}
答:(提供关键的截图和简单的文字描述)
(1)先通过putty连接到曙光集群,登录进去,就到了LINUX系统
(2)查询hellomp.c文件
(3)显示hellomp.c文件内容
(4)输入"gcc -fopenmp -O2 -o hellomp.out hellomp.c"命令编译(5)输入"./hellomp.out"命令运行程序
得到的结果截图如下:
2. Windows下OpenMP程序的编译和运行。用VS2008编辑上述的hellomp.c源程序,注意在菜单“项目->属性->C/C++->语言”选中“OpenMP支持”,编译并运行程序。
// hellomp.c.cpp : 定义控制台应用程序的入口点。
//
#include
#include
#include
int main()
{
int nthreads,tid;
omp_set_num_threads(8);
#pragma omp parallel private(nthreads,tid)
{
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 is %d\n",nthreads);
}
}
}
答:(提供关键的截图和简单的文字描述)
(1)通过远程桌面连接219.218.25.166(在自己机器上运行即可),登录进window系统(2)打开VS2008编辑上述的hellomp.c 源程序
(3)编译hellomp.c 程序
(4)运行hellomp.c 程序
(5)结果截图如下