OpenMP例程使用手册

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OpenMP例程使用手册

目录

1 OpenMP简介 (2)

2 OpenMP例程编译 (2)

2.1安装gawk (2)

2.2编译例程 (2)

2.3拷贝例程到开发板 (3)

3例程测试 (5)

3.1 dspheap (5)

3.2 vecadd (6)

3.3 vecadd_complex (6)

3.4 其他例程测试说明 (7)

更多帮助.................................................................................................... 错误!未定义书签。

公司官网: 销售邮箱:sales@ 公司总机:020-8998-6280 1/7技术论坛: 技术邮箱:support@ 技术热线:020-3893-9734

1 OpenMP简介

OpenMP用于共享内存并行系统的多处理器程序设计的一套指导性的编译处理方案(Compiler Directive)。它是为在多处理机上编写并行程序而设计的一个应用编程接口。它包括一套编译指导语句和一个用来支持它的函数库。

OpenMP提供的这种对于并行描述的高层抽象降低了并行编程的难度和复杂度,这样程序员可以把更多的精力投入到并行算法本身,而非其具体实现细节。对基于数据分集的多线程程序设计,OpenMP是一个很好的选择。同时,使用OpenMP也提供了更强的灵活性,可以较容易的适应不同的并行系统配置。线程粒度和负载平衡等是传统多线程程序设计中的难题,但在OpenMP中,OpenMP库从程序员手中接管了部分这两方面的工作。

但是,作为高层抽象,OpenMP并不适合需要复杂的线程间同步和互斥的场合。OpenMP的另一个缺点是不能在非共享内存系统(如计算机集群)上使用。在这样的系统上,MPI使用较多。

2 OpenMP例程编译

2.1安装gawk

此工具为编译的必要工具,在Ubuntu下安装:

Host#sudoapt-get install gawk

图1

2.2编译例程

请先安装ti-processor-sdk-linux-am57xx-evm-03.01.00.06,安装步骤请参照《相关软件

安装》文档,安装之后进入SDK根目录,执行编译命令:

Host#make openmpacc-examples

图2

编译成功后,会在SDK根目录“example-applications/openmpacc-examples-1.4.0.2/”目录下生成可执行文件。

2.3拷贝例程到开发板

源码路径:光盘资料/demo/OpenMP/bin/openmp.tar.gz

本文已经提供编译好的OpenMP例程,将它拷贝Ubuntu解压并拷贝到开发板文件系统上即可执行,或者自行拷贝上一步骤编译的文件也可以。

解压openmp.tar.gz:

Host#tar axvfopenmp.tar.gz

图3

使用SSH拷贝到开发板,注意,需先要在开发板系统上ping一下Ubuntu的IP,再进行拷贝:

Target#ifconfig //查询Ubuntu IP

图4

Target#ping 192.168.1.54 //在开发板上pingUbuntuIP

图5

在Ubuntu上拷贝解压出来的OpenMP文件夹到开发板

Host#scp -r openmproot@192.168.1.45:/home/root //192.168.1.45为开发板IP

图6

即可在开发板上看到拷贝过去的OpenMP文件:

图7

3 例程测试

3.1dspheap

程序功能:

此例程演示如何在OpenMP目标区域内,在DSP上创建和使用堆。有DSP内置函数来创建在MSMC,DDR和本地内存区域中操作用户定义的堆。这些堆是永久的,只要它们的底层内存被分配。在这个例子中,从连续的共享内存区域创建缓冲区,提供底层内存存储。堆是活跃的和持久的从它们被初始化直到缓冲区被解除分配。

运行测试:

进入“/openmp/dspheap/”目录,运行程序:

Target# ./dspheap

图8

3.2vecadd

程序功能:

利用OpenMP进行两个元素个数为8K的一维向量的并行相加。运行测试:

进入“/openmp/vecadd/”目录,运行程序:

Target# ./vecadd

图9

3.3vecadd_complex

程序功能:

利用OpenMP进行两个元素个数为8K的复数向量的并行相加。

运行测试:

进入“/openmp/vecadd_complex/”目录,运行程序:

Target# ./vecadd_complex

图10

3.4其他例程测试说明

其他程序测试方法跟以上一样,具体程序功能可以查看源码.C文件的注释,路径在SDK根目录“/example-applications/openmpacc-examples-1.4.0.2/”目录下。

相关文档
最新文档