ARGOS - a software framework to facilitate user transparent multi-threading

Nils Petersen, Yulian Pastarmov, Didier Stricker

In: Diana Göhringer , Michael Hübner , Jürgen Becker (Hrsg.). Many-core Applications Research Community Symposium. Many-core Applications Research Community (MARC) Symposium (MARC-2011) 3rd July 5-6 Ettlingen Germany KIT Scientific Reports 7598 ISBN 978-3-86644-717-2 KIT Scientific Publishing Karlsruhe 7/2011.


In this paper we present a software framework called ARGOS designed for auto-parallelizing algorithms and distributing its parts among physical machines. The core approach is to split an algorithm into an abstract, a target specific static, and a run-time part. The abstract part is an abstract graph representation of the distinct steps of an algorithm with all data dependencies explicitly resolved. The target specific part is statically distributing graph-parallel parts of the algorithm among threads and physical machines and in addition associates each algorithm step with an optimal implementation for the respective target hardware. The run-time part covers load-balancing and - in presence of streaming data - parallelizes sequential branches of the graph by stage-parallel execution. The underlying programming model allows for optimal partitioning of the graph in terms of computational load and memory resp. bandwidth footprint. All thread synchronization and memory management is hereby carried out by the framework making the multi-threaded execution completely transparent to the user. The software is in daily use within our research group and has already been deployed to several industrial projects.

Deutsches Forschungszentrum für Künstliche Intelligenz
German Research Center for Artificial Intelligence