首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习共享内存、分布式内存和/或GPU编程的范例问题和解决方案是什么?

学习共享内存、分布式内存和/或GPU编程的范例问题和解决方案是什么?
EN

Stack Overflow用户
提问于 2011-04-22 09:11:04
回答 3查看 536关注 0票数 3

我们正在寻找可以在任何或所有共享内存、分布式内存和GPGPU架构上运行的范例问题和代码。我们使用的参考平台是LittleFe (littlefe.net),这是一个开放设计的低成本教育集群,目前有6个双核CPU,每个CPU都有一个nVidia芯片组。

这些问题和解决方案将为任何新手提供工作示例和机会来卷起袖子和代码来教授并行性。Stackoverflow专家有很好的洞察力,可能会有一些最喜欢的。

计算曲线下的面积很有趣,很简单,也很容易理解,但肯定会有同样容易表达的,充满了练习和学习的机会。

使用多个内存体系结构的混合示例是最可取的,并且反映了并行编程的趋势。

在LittleFe上,我们主要使用了三个应用程序。第一种是在一个高度并行且通信开销很小的仪表板上分析最优目标。第二个是Conway的生命游戏,这是共享边界条件的典型问题。它具有适度的通信开销。第三个是星系形成的n体模型,这需要很大的通信开销。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-22 09:17:19

CUDA programming guide(PDF)详细分析了矩阵乘法在图形处理器上的实现。这似乎是学习GPU编程的主要"hello world“示例。

此外,CUDE SDK还包含了数十个用CUDA和OpenCL进行GPU编程的示例,这些示例解释得很好。我最喜欢的是碰撞球的例子。(一个几千个球实时碰撞的演示)

票数 2
EN

Stack Overflow用户

发布于 2011-04-23 01:58:10

我最喜欢的两个是数值积分和寻找素数。对于第一个,我们在函数f(x) = 4.0 / (1.0 + x*x)上编写中点矩形规则。0和1之间的函数积分给出了常数pi的近似值,这使得检查答案的正确性变得很容易。并行度是在积分范围内(计算矩形的面积)。

对于第二个,我们输入一个整数范围,然后识别并保存该范围内的质数。我们使用暴力除以所有可能的因子;如果发现任何除数不是1或数字,则该值是复合的。如果找到质数,则对其进行计数并将其存储在共享数组中。并行性划分了范围,因为测试N的素性独立于测试M。在线程之间共享素数存储或收集分布式并行答案需要一些三叉性。

这些都是需要解决的非常基本和简单的问题,这使得学生可以专注于并行实现,而不是过多地关注所涉及的计算。

票数 1
EN

Stack Overflow用户

发布于 2011-04-24 00:13:33

比较复杂但简单的示例问题之一是BLAS例程sgemm或dgemm (C = alpha *A x B+ beta * C),其中A,B,C是有效大小的矩阵,alpha和beta是标量。类型可以是单精度浮点(sgemm)或双精度浮点(dgemm)。

这个简单的例程在不同的平台和架构上的实现教会了我们一些关于功能和工作原理的见解。有关BLAS和?gemm例程的更多详细信息,请查看http://www.netlib.org/blas

您只需注意,对于GPU上的双精度实现,GPU需要具有双精度功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5751406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档