4

我在哪里可以找到用“Unified Parallel C”编写的代码示例?

我还对有关这种语言的规范性文件(标准、参考手册、可在线访问的书籍和课程)感兴趣。在 C 中添加了哪些扩展以获得 UPC?

这种方言是生是死?

4

3 回答 3

3

UPC 作为加州大学伯克利分校的一个研究项目仍然存在,并且可能正在被与该研究小组相关的高性能计算设施和国家实验室使用。您可以在此处获取 2009 年 11 月发布的最新版本。可以在此处找到文档、示例代码等。语言规范在这里;在 C99 语法之上有许多扩展来支持线程和线程间通信作为一流的实体(也许不是严格意义上的“一流”,但肯定比在 C 中更重要,在 C 中调用不透明的库进行同步和通信)。

UPC在一些地方仍在使用;我不是专家,但据我所知,使用 UPC 由基于 GCC 的编译器、运行时和运行在网络堆栈之上的消息传递层 GASNet 组成。这些似乎在您可能想要 UPC之类的机器类型上得到了相对较好的支持。我不会称它为一个庞大的开发者社区,但如果你管理一台大型并行机器,那么值得一试。如果您只想在笔记本电脑、台式机或服务器机箱上运行某些东西,那么还有各种各样的其他并行编程模型以及商业支持、工具等。

于 2010-03-09T00:54:30.393 回答
2

除了基于伯克利 UPC 运行时的 UPC 实现:

Berkley UPC-to-C 转换器http://upc.lbl.gov/download/source.shtml 和 gcc-upc http://www.gccupc.org )

还有 HP h30097.www3.hp.com/upc/ 和 Cray 的专有编译器。

我相信 Cray 和 HP UPC 版本都有进度保证,而 Berkley 派生的则没有(这意味着,如果您编写自旋锁样式代码,则必须显式调用 bupc_relax 以促使运行时处理远程写入你脱离了循环)

于 2010-06-18T13:19:28.137 回答
2

UPC 在 HPC 社区中仍然非常活跃。

语言/库规范的新 1.3 版本于 2013 年 11 月发布,可在此处获得:

https://upc-lang.org/upc-documentation

主要的 UPC 编译器已经(或即将)发布 1.3 兼容版本。

UPC 规范被编写为针对 C99 的“差异”,因此很容易看到添加了什么。在高层次上,它在语言上是一些新的关键字和对类型系统的一些扩展,以适应 PGAS 内存模型和语言级 SPMD 线程。还有大量(并且不断增长的)库用于支持 UPC 应用程序中的常见 HPC 需求。

有关 UPC 的更多信息,请访问:

http://upc.lbl.gov/

您可以在其中下载可在各种系统上运行的免费开源编译器。运行时源下载包括 UPC 示例程序、基准和测试套件库。

于 2014-04-13T06:06:28.350 回答