社区
英特尔边缘计算技术
帖子详情
请问现在企业大多用什么语言(编程模型)开发并行程序啊?我知道的就下面这些了。请问企业大多用什么语言?谢谢各位啦! OpenMP MPI Pthreads Wi
Daneill
2011-12-07 09:30:53
请问现在企业大多用什么语言(编程模型)开发并行程序啊?我知道的就下面这些了。请问企业大多用什么语言?谢谢各位啦!
OpenMP
MPI
Pthreads
Windows threads
Java
C#
MapReduce/Hadoop
OpenCL/CUDA
TBB
UPC
X10
Erlang
...全文
342
2
打赏
收藏
请问现在企业大多用什么语言(编程模型)开发并行程序啊?我知道的就下面这些了。请问企业大多用什么语言?谢谢各位啦! OpenMP MPI Pthreads Wi
请问现在企业大多用什么语言(编程模型)开发并行程序啊?我知道的就下面这些了。请问企业大多用什么语言?谢谢各位啦! OpenMP MPI Pthreads Windows threads Java C# MapReduce/Hadoop OpenCL/CUDA TBB UPC X10 Erlang
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
AlburtHoffman
2012-07-02
打赏
举报
回复
Scala 和 Hashkel现在在平行领域应用的十分广泛。企业里面有很多广泛的应用,但达到大规模还说不上。
Intel_Shenghong
2011-12-08
打赏
举报
回复
其实不需要都学会吧,它们适用于不同的情况下,我觉得你根据你的方向选择性的钻研其中某一个方向就可以了,然后在此基础上去学习其它的其实也不难,毕竟并行开发的思想才是关键,至于语言或编程模型,更多的是一个工具,有些是随着不断的发展而来的,有些是适用环境不一样,有些适用并行情况不一样(数据并行和任务并行?)等。
首先语言就不说了,各种语言都提供了并行(更多的说是线程模型吧,但是java、c#这些一般用在真正的大规模并行开发很少吧,而且这些模型不一定都提供了java和c#的版本),一般讨论高性能并行开发可能更多的还是c和c++和Fortran了(下面只考虑c和c++)。
(1) win threads/lin pthread:属于操作系统的本地线程模型,最基本的东西了,其实也不算是并行开发,提供了基本的线程模型。
(2) OpenMP和MPI:都是标准,所谓的标准,就是说定义好了,不同的编译器去实现了。所以不同的编译器生成的OpenMP和MPI的代码是不同的,当然,标准也在更新,所以不同的编译器也不一定都支持最新的标准。其中OpenMP只能用于共享内存的环境,而MPI适用于分布式系统,所以两者使用环境是不一样的。另外,它们的底层实现应该也是需要调用操作系统线程模型去实现的。
(3) TBB和Cilk Plus:都是线程库/并行开发库,TBB是以模板的形式提供,只能用于C/C++,不能用于纯C的情况。Cilk Plus是Intel编译器提供的语言扩展,能简化多线程的开发,具体你可以看看。这些线程库主要是提供了一些模型简化并行开发,相信底层的实现仍然需要操作系统线程模型。
(4) OpenCL/CUDA:它们的特点是适用于异构系统的并行计算,所谓的异构,就是不同的CPU和不同的GPU甚至其它的计算设备一起计算。OpenCL是一个标准,不同的产商实现自己的驱动和实现,就可以共存了。CUDA具体的不太清楚,不知道它是否和OpenCL在功能上属于同一级别还是只是一个子集(只是用于GPU?)
(5) 其他几个还真不了解,嘿嘿。但是我相信应该就是不同的编程模型而已吧,上面这些库已经涉及到了同构和异构并行、共享内存和分布式并行等,应该也没有更特别的模型了吧。
好像并没有正面回答你的问题,我是觉得你收集所有的并行开发模型、语言没有必要,并行开发的主要思想还是类似的,只是它们的底层实现模型和适用环境不一样。所以你的问题:企业一般用什么模型或语言开发并行程序?这个问题就更没法正面回答了,因为不同的企业的不同业务的环境不一样,比如有些是必须考虑异构就不能用OpenMP这些了吧,然后有些还要考虑公司的开发人员擅长的是什么模型。关于语言,如果是大规模的并行计算(比如科学计算),相信更多的还是Fotran、c和c++了。至于java和c#,可能就用在一些简单的多线程开发,比如弄几个线程这样的。
大概是我的一点看法,有些地方我也不太清楚。嘿嘿。
Fortran
语言
教程-fortran-master.zip
随着多核处理器的普及和高性能计算需求的增长,Fortran
语言
也逐渐支持并行
编程
模型
,以适应最新的计算趋势。此外,随着对科学数据处理需求的增加,Fortran
语言
也在不断地扩展其数据处理和可视化的能力。 Fortran...
CPU GPU异构并行计算技术研究.pdf
CUDA(Compute Unified Device Architecture)是基于 CPU 和 GPU 异构的常用
编程
模型
,CUDA
编程
模型
直接使 用类 C
语言
进行
开发
,大大减少了
编程
工作,通过简洁的代码就可以调用 GPU 进行并行计算,从而提高大规模...
教学多线程专业知识讲座.pptx
在现代计算机技术中,多线程是一种重要的程序执行...Java作为主流的
编程
语言
之一,其多线程
编程
模型
在
开发
高性能应用程序中扮演着重要角色。理解和掌握Java多线程程序设计的知识,对于进行高效程序
开发
具有重要意义。
cuda book reference
这本书详细介绍了CUDA(Compute Unified Device Architecture)
编程
模型
,这是一个由NVIDIA
开发
的软件平台和
编程
模型
,它允许
开发
者使用NVIDIA的GPU(图形处理单元)进行通用计算。 CUDA
编程
模型
是并行计算领域的...
编程
语言
的未来?
不同的
编程
语言
具有各自的特点和优势,比如有的
语言
善于处理并发,有的
语言
在科学计算方面表现优秀,还有的
语言
特别适合Web
开发
。未来,随着技术的不断创新和应用场景的多样化,
编程
语言
也将会不断演进和发展,以更...
英特尔边缘计算技术
568
社区成员
7,024
社区内容
发帖
与我相关
我的任务
英特尔边缘计算技术
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
复制链接
扫一扫
分享
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章