根据国外媒体,Optimizing Technologies公司发布了Linux 系统下的Auto-Parallelizer Beta版,支持x86、IA64和PowerPC处理器平台下。Auto-Parallelizer的功能是寻找源程序中用顺序方式编写的程序中可被并行执行的部分。有时候,它会改动源代码来获得更多可被并行执行的部分。例如,用户可以用顺序程序的方式写一个计算程序,然后将源代码交给Auto-Parallelizer,之后Auto-Parallelizer会处理这段源程序,使得这段程序中有些代码被并行执行。这通常会给程序的执行速度带来几倍的提升。
Auto-Parallelizer使用支持OpenMP标准的库来处理并行执行的代码。当前版本只应用了libgomp,不过它可以使用任何支持所需接口函数的库。当前只实现了对循环的并行化。将来它还会增加并行化其它部分的功能,比如多次调用。
目前Auto-Parallelizer只能与该公司修改过的GCC一起工作,如果想进行并行化代码工作,必须具备以下两点:
一个修改版的基于gcc的编译器,而且它可以读写程序语义描述文件
一个Auto-Parallelizer附件,用它来读取、分析、修改文件,并将其写入
修改版的基于gcc的编译器有两种形式:1、x86 Linux平台下的二进制可执行文件;2、源代码。Auto-Parallelizer附件则是独立于gcc的——它是基于“通用翻译库(UTL)”的。可以下载到该附件的x86 Liunx二进制可执行文件。
该公司说他们对Auto-Parallelizer beta版、icc 11.0.074(x86和IA64平台下效率最高的编译器之一)和gcc 4.3.1 (PowerPC平台下效率最高的编译器之一)编译过的程序的执行性能进行了比较,比较结果可以在这里找到:
x86平台结果
IA64平台结果
PowerPC平台结果
|