当前位置: 首页 > 科技观察

麻省理工开发PaSh系统:在保证准确性的前提下让程序运行得更快_0

时间:2023-03-23 11:03:17 科技观察

科学家最近开发了一种新系统,可以让计算机程序运行得更快,同时保证准确性。麻省理工学院的一个研究团队创造了一项新技术[PDF],通过并行化程序来提高在Unixshell中运行的程序的速度。这是50年前创建的编程环境,至今仍在广泛使用。他们的方法将这些程序并行化,这意味着它将程序组件分成可以在多个计算机处理器上同时运行的部分。这使程序能够在其原始运行时间的一小部分内执行Web索引、自然语言处理或数据分析等任务。麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究科学家NikosVasilakis表示:“有很多人在使用这些类型的程序,例如数据科学家、生物学家、工程师和经济学家。现在他们可以自动加速他们的程序不用担心得到错误的结果”。该系统还使程序员可以轻松开发数据科学家、生物学家、工程师和其他人使用的工具。他们不需要对程序命令进行任何特殊调整即可实现这种自动、无差错的并行化,Vasilakis补充说,他是一个委员会的主席,该委员会由来自世界各地的研究人员组成,他们已经在该系统上工作了将近两年。年。Vasilakis是该小组最新研究论文的高级作者,该小组包括麻省理工学院的合著者和CSAIL研究生TammamMustafa,并将出席USENIX操作系统设计与实现研讨会。合著者包括主要作者、宾夕法尼亚大学研究生KonstantinosKallas;JanBielak,华沙Staszic高中的学生;AarnoLabs的软件工程师DimitrisKarnikis;瑟斯顿H.Y.Dang,前麻省理工学院博士后,现任谷歌软件工程师;MichaelGreenberg,学院计算机科学助理教授。这个名为PaSh的新系统专注于在Unixshell中运行的程序或脚本。脚本是指示计算机执行计算的一系列命令。shell脚本的正确和自动并行化是研究人员几十年来一直在努力解决的棘手问题。Unixshell仍然很流行,部分原因是它是唯一允许单个脚本包含用多种编程语言编写的函数的编程环境。不同的编程语言更适合特定的任务或数据类型;如果开发人员使用正确的语言,解决问题就会容易得多。“人们还喜欢使用不同的编程语言进行开发,因此将所有这些组件组合到一个程序中是很常见的事情,”Vasilakis补充道。尽管Unixshell支持多语言脚本,但其灵活和动态的结构使得这些脚本难以使用传统方法并行化。当一个程序是用一种语言编写的时,开发人员会获得有关其功能和语言的明确信息,这些信息可以帮助他们确定哪些组件可以并行化。但是这些工具不存在用于在Unixshell中编写脚本。用户无法轻松查看组件内部发生的情况或提取有助于并行化的信息。为了克服这个问题,PaSh使用了一个预处理步骤,在它认为可并行化的程序组件上插入简单的注释。PaSh然后尝试在程序运行时并行化脚本的这些部分,恰好在它到达每个组件的那一刻。这避免了shell编程中的另一个问题——无法提前预测程序的行为。该系统通过“及时”并行化程序组件避免了这个问题。与尝试提前执行并行化的传统方法相比,它有效地加速了更多的组件。即时并行化还确保加速程序仍然返回准确的结果。如果PaSh到达无法并行化的程序组件(可能依赖于尚未运行的组件),它会简单地运行原始版本并避免导致错误。