Programming a distributed system, such as a cluster, requires extended use of low-level communication libraries and can often become cumbersome and error prone for the average developer. In this work, we consider each node of a cluster as a separate OpenMP device, able to run code with OpenMP directives in parallel. We make use of the OpenMP device model to provide an easy and intuitive way to program available cluster nodes. Based on that, we examine modifications that were necessary to make existing task-based applications able to exploit such an infrastructure. Finally, we evaluate the performance of the system and conclude that one can gain significant speedup, as long as the application tasks do not produce excessive communication overheads.
翻译:一个分布式系统(如集群)的编程系统需要扩大使用低级别通信图书馆,而且往往会成为普通开发商的麻烦和容易出错。在这项工作中,我们认为一个集群的每个节点都是一个单独的 OpenMP 装置,能够同时运行OpenMP 指令的代码。我们利用 OpenMP 装置模型为编程可用的集群节点提供简单和直观的方式。在此基础上,我们研究为使现有基于任务的应用程序能够利用这种基础设施而必须作出的修改。最后,我们评估了系统的业绩,并得出结论,只要应用任务不产生过多的通信间接费用,就可以大大加快系统的工作速度。