英特尔超立方体,第二部分,转载

今天早些时候的第一篇帖子被删减了。这是完整的帖子。尽管我是MathWorks的创始人之一,但我只在公司成立的头五年里担任过顾问。在那段时间里,从1985年到1989年,我在硅谷的两家电脑初创公司碰碰运气。这两家企业作为企业都失败了,但这段经历教会了我很多关于计算机行业的知识,并影响了我对MATLAB最终发展的看法。这篇文章继续讨论英特尔个人超级计算机

内容

iPSC的矩阵计算

我一到俄勒冈州的新工作,就开始在iPSC上写矩阵计算的程序,尽管我们要过几个月才能有一台可以工作的机器。编程语言是Fortran,通过调用操作系统在Cube的节点之间传递消息。

计算是由前端Cube Manager发起和控制的。矩阵不是来自管理器。它们是测试矩阵,在Cube上生成,并按列分布。实际的数值并不重要。我们主要对各种操作的定时实验感兴趣。

我们很快就有了像“gsend”这样的通信例程,全局发送,从一个节点向所有其他节点发送一个向量,以及“gsum”,全局和,它形成了每个节点一个向量的和。这些例程使用了超立方体连接,但除此之外,我们可以将节点视为完全互连的。

正如我两周前在我的博客中所描述的,高斯消去将以以下方式进行。在k-消除的第一步,包含k-th列搜索最大的元素。这是kth枢轴。在将列中的所有其他元素除以枢轴以产生乘数之后,它将向所有其他节点广播包含这些乘数的消息。然后,在需要大部分算术操作的步骤中,所有节点将对它们的列应用乘数。

MATLAB和iPSC

在1985年和1986年MATLAB还是全新的。它在并行计算方面没有任何东西,而且在许多年里都没有。因此MATLAB无法在iPSC上运行。iPSC的一个节点上的硬件与IBM PC/AT相同,因此原则上它可以支持MATLAB,但节点上的基本操作系统不能,并且没有直接连接到节点的磁盘。万博1manbetx

Cube Manager也不能运行MATLAB。Manager有一个Intel 80286 CPU,但它运行Xenix,而不是Microsoft DOS, MathWorks没有为这个操作系统制作MATLAB版本。

幸运的是,我们小组有几个Sun工作站。收购太阳队在英特尔内部引起了一些骚动,因为太阳队基于摩托罗拉芯片,而当时摩托罗拉是微处理器业务的竞争对手。但我们是独立于英特尔之母的,所以摩托罗拉的禁令并不适用于我们。我可以在桌面上的Sun上运行MATLAB,使用Sun的Unix版本,远程登录到iPSC Cube管理器。我们还没有Mex文件,所以MATLAB不能直接与Cube通信。我在魔方上进行计时实验,将结果发送回管理器上的文件,将文件读入MATLAB,然后建模并绘制数据。

诺克斯维尔会议

1985年8月,当时在橡树岭国家实验室的迈克·希斯在田纳西州的橡树岭组织了一次关于超立方体多处理器的会议。橡树岭学院将成为继耶鲁之后,又一个获得iPSC的客户。他们还得到了一台nCUBE机器。会议记录于1986年由SIAM出版。

诺克斯维尔会议是iPSC的首次公开展示。我做了一个演讲,并在论文集上发表了一篇题为分布式内存多处理器的矩阵计算.我讲过“每加仑百万次浮点运算”的故事我关于LINPACK基准测试的博客去年6月。

这篇论文中包含的图可能是所有科学论文中发表的第一个MATLAB图。整篇论文都是在点阵打印机上打印的,并将相机准备好的副本发送给SIAM。以今天的标准来看,这些情节非常粗糙。它们的分辨率不到每英寸100个点。

再看阿姆达尔定律

在并行计算的早期,阿姆达尔定律作为一个基本限制被广泛引用。它指出,如果在并行机器上进行一个涉及固定任务的实验,那么最终无法并行的任务部分将主导计算,增加处理器数量不会显著减少执行时间。

但是当我开始使用iPSC时,随着处理器数量的增加,通过增加问题大小来改变任务似乎是明智的。在诺克斯维尔的论文中,我写道:

为了充分利用该系统,必须考虑涉及多个矩阵的问题。,或大阶矩阵. ...性能强烈地依赖于n和p这两个参数。对于给定的p,有一个由可用内存量决定的n的最大值。

$$ n_{max} \约\sqrt{pM} $$

在诺克斯维尔发表论文后,我在英特尔科学计算机公司写了一份技术报告,这篇报告出现了两次,标题略有不同,再看阿姆达尔定律,仔细看阿姆达尔定律.几年前,我自己的报告副本在家庭办公室的洪水中丢失了,我问过的朋友都找不到他们的副本。如果有人在读这篇博客,碰巧有一份副本,我很感激他们的来信。

我找到了一个在那个时候制作的透明图,上面有下面的MATLAB图。这个图没有很好的注解。它应该遵循一系列前面的图表。它类似于诺克斯维尔/SIAM论文中的图表,尽管它涉及到更大的机器和更多的处理器

每条虚线表示百万次浮点运算速度,f,为a的矩阵的LU分解固定大小,随着处理器数量的变化而变化,p,则增加。第一行是有序矩阵n= 100。这条线几乎在p= 16。这是原始LINPACK基准测试的顺序,是阿姆达尔定律的一个很好的例子。对于一个100 × 100矩阵,将处理器数量增加到16个以上并不能提供任何显著的并行加速。

用圆点填充成黑点的直线是n= 1000。当我们达到最大处理器数量时,我们仍然可以看到显著的加速,p= 128。上面的圆,没有虚线连接到它,是一个有序矩阵n= 1959。每个节点只有30K双精度字的空间,这是可以分布在整个机器上的最大矩阵。

这些曲线的上包络线开始接近代表完美加速的$45^\circ$线。它预览了我稍后将在现已丢失的技术报告中提出的观点。如果您增加问题的规模,以利用增加的处理器数量所增加的可用内存,那么您可以提高并行效率,至少可以部分减轻Amdahl定律所模拟的损失。这种现象被称为弱的加速弱扩展

令人尴尬的是平行的

术语“令人尴尬的并行”今天在并行计算中被广泛使用。这句话是我发明的。我想暗示这很尴尬,因为它太简单了——没有涉及到并行编程。维基百科引用伊恩·福斯特(Ian Foster)的网页,将“令人尴尬的并行”问题定义为“很少或不需要努力就能将问题分离为许多并行任务的问题”。通常情况下,这些并行任务之间不存在依赖关系(或通信)。”

维基百科说,短语“尴尬的平行”的词源是不知道的,但他们确实参考了我的诺克斯维尔超立方体论文。这是我写的。

在这样的机器上使用LINPACK和EISPACK的一个重要方式是在应用程序中使用许多任务,这些任务涉及到足够小的矩阵,可以存储在单个处理器上。传统的子程序可以在单个处理器上使用而无需修改。我们称这样的应用程序为“令人尴尬的并行”,是为了强调这样一个事实:虽然存在高度的并行性,并且可以有效地使用许多处理器,但粒度足够大,以至于在矩阵计算中不需要处理器之间的合作。

曼德尔勃特集合

1985年8月的封面科学美国人它展示了一个对计算机图形学、并行计算和我的世界产生了持久影响的图像——曼德尔布罗特集合。a。k。杜尼的一篇文章标题简单电脑娱乐副标题是“计算机显微镜放大观察数学中最复杂的物体”。(顺便说一句,杜尼后来取代了传奇人物马丁·加德纳和道格拉斯·霍夫施塔特,创作了《科学美国人》的数学专栏。)

为iPSC编写并行程序来计算Mandelbrot集是很容易的。代码适合一个开销透明。而且速度很快!问题是我们不能展示结果。将图像发送到前端需要很长时间。那时我们还没有任何高分辨率的显示器。我花了几年的时间,并接触到一台重量级的图形超级计算机,才得以完成曼德布罗特集的设计。

遗产

1987年,我离开了俄勒冈州的英特尔科学计算机公司,加入了硅谷的另一家初创公司。我会在下一篇文章中告诉你这次冒险。

我所描述的iPSC/1在商业上并不成功。它不是一台真正的超级计算机。请看上面的图表。在1985年,一台价值50万美元的机器在LINPACK基准上的3百万次浮点运算还不够。每个节点半兆字节的内存是远远不够的。我们知道,到我离开的时候,iSC已经引入了具有更大内存和向量处理器的模型,以更少的节点为代价。

iPSC/1上只有很少的软件。Cube上的操作系统非常小。Manager上的开发环境非常小。当我在那里的时候,我负责开发应用程序的小组,但我不确定我们是否真的想到要这样做。我们只是做了演示和数学库。

我想我可以说iPSC/1是一个重要的科学里程碑。它在许多大学和实验室的研究中发挥了重要作用。英特尔科学计算机公司继续在其他英特尔芯片的基础上,制造了其他的机器,这些机器在商业上取得了成功,但它们没有让我参与,也没有让MATLAB参与。

我学到了很多。当时,甚至在某种程度上直到今天,许多人认为MATLAB只是“矩阵实验室”。所以,要得到一个“并行MATLAB”,你只需要在一个并行化的矩阵库上运行。我很快意识到这是错误的粒度级别。在iPSC上,这意味着在Cube Manager上运行MATLAB,在那里生成一个矩阵,通过以太网链路发送到Cube,在Cube上进行并行计算,并最终将结果发送回前端。

我在1985年使用iPSC的经验告诉我,从前端机器上的MATLAB发送消息到后端机器上的并行矩阵库是一个坏主意。我在1995年的《为什么没有并行MATLAB》中说过。但是其他人在2005年还在用他们的并行MATLAB版本来尝试。

今天,我们用MATLAB实现了多个层次的并行。矢量库和矩阵库中有大多数用户从未考虑过的自动细粒度多线程。在恰好有GPU的机器上,GPU中也可能有许多线程。但是iPSC真正的遗产是集群、云和MATLAB分布式计算服务器。在那里,我们发现,到目前为止,最受欢迎的功能是parfor构造来生成令人尴尬的并行作业。

参考文献

克里夫硅藻土,分布式内存多处理器的矩阵计算,在超立方体多处理器,第一届超立方体多处理器会议论文集,Michael T. Heath主编,橡树岭国家实验室,ISBN 0898712092 / 9780898712094 / 0-89871-209-2, SIAM, 181-195, 1986。< http://www.amazon.com/hypercube多处理器- 1986 -迈克尔- heath/dp/0898712092>

克里夫硅藻土,再看阿姆达尔定律,技术报告TN-02-0587-0288,英特尔科学计算机,1987。

克里夫硅藻土,仔细看阿姆达尔定律,技术报告TN-02-0687,英特尔科学计算机,1987。

A. K.杜尼,电脑娱乐《科学美国人》1985年< http://www.scientificamerican.com/media/inline/blog/File/Dewdney_Mandelbrot.pdf>




发布与MATLAB®R2013b

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。