小编And*_*ida的帖子

OpenMP可以用于GPU吗?

我一直在网上搜索,但我仍然对此话题感到困惑.谁能更清楚地解释这个?我来自航空航天工程背景(不是计算机科学专业),所以当我在网上阅读有关OpenMP/CUDA等的内容时.和多线程我真的不太了解所说的很多内容.

我目前正在尝试并行化用FORTRAN编写的内部CFD软件.这些是我的疑惑:

  1. OpenMP使用来自CPU的多个线程共享工作负载.它可以用来让GPU也能完成一些工作吗?

  2. 我读过OpenACC.它是否类似于OpenMP(易于使用)?

我也读过有关CUDA和内核的内容,但我对并行编程没有太多经验,而且我对内核的内容并不了解.

  1. 对于FORTRAN,是否有一种简单易用的方式与GPU共享我的工作负载(如果OpenMP不这样做而OpenACC不可移植)?

你能给我一个"傻瓜"类型的答案吗?

multithreading fortran gpu openmp openacc

24
推荐指数
3
解决办法
1万
查看次数

查看一组值是否出现在数组中的有效方法?

我试图检查整数A的一维数组是否包含,在它的每一个大小(A)位置,整数集合S(也是一维数组)的任何元素,一般情况是尺寸(S)> 1.

简单明了的方法是执行以下嵌套循环:

DO i = 1, size(A)
   DO j = 1, size(S)
        IF(A(i) == S(j)) ** do something **
   ENDDO 
ENDDO
Run Code Online (Sandbox Code Playgroud)

问题是,对于大型阵列AS,此过程效率非常低.是否有一个内在的FORTRAN子例程或函数可以更快地执行此操作?还是其他方法?

我试图做以下,但它不想编译:

DO i = 1, NNODES
   IF(A(i) == ANY(S)) ** do something **
ENDDO
Run Code Online (Sandbox Code Playgroud)

出现的错误消息如下:" error #6362: The data types of the argument(s) are invalid."我正在使用VS2010和Intel Parallel Studio 2013.

arrays algorithm fortran

0
推荐指数
1
解决办法
123
查看次数

标签 统计

fortran ×2

algorithm ×1

arrays ×1

gpu ×1

multithreading ×1

openacc ×1

openmp ×1