Academia.eduAcademia.edu

Outline

Integrating dataflow abstractions into the shared memory model

2012, Proceedings - Symposium on Computer Architecture and High Performance Computing

https://doi.org/10.1109/SBAC-PAD.2012.24

Abstract

In this paper we present Atomic Dataflow model (ADF), a new task-based parallel programming model for C/C++ which integrates dataflow abstractions into the shared memory programming model. The ADF model provides pragma directives that allow a programmer to organize a program into a set of tasks and to explicitly define input data for each task. The task dependency information is conveyed to the ADF runtime system which constructs the dataflow task graph and builds the necessary infrastructure for dataflow execution. Additionally, the ADF model allows tasks to share data. The key idea is that computation is triggered by dataflow between tasks but that, within a task, execution occurs by making atomic updates to common mutable state. To that end, the ADF model employs transactional memory which guarantees atomicity of shared memory updates. We show examples that illustrate how the programmability of shared memory can be improved using the ADF model. Moreover, our evaluation shows that the ADF model performs well in comparison with programs parallelized using OpenMP and transactional memory.

References (19)

  1. Abdelkhalek, A. and Bilas, A. Parallelization and Performance of Interactive Multiplayer Game Servers. In Proceedings of the 18th International Parallel and Distributed Processing Symposium (IPDPS 2004) ( 2004), IEEE Computer Society.
  2. Ansari, M., Kostelidis, C., Jarvis, K., Lujan, M., Kirkham, C., and Watson, I. Lee-TM: A Non-trivial Benchmark for Transactional Memory. In In (Aiya Napa, Cyprus June 2008).
  3. Arvind and Culler, D. E. Dataflow architectures (1986), 225-253.
  4. Barth, P. S., Nikhil, R. S., and Arvind. M-Structures: Extending a Parallel, Non-strict, Functional Language with State. In Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture (London, UK 1991), Springer-Verlag, 538-568.
  5. Bharambe, A., Pang, J., and Seshan, S. Colyseus: a distributed architecture for online multiplayer games. In Proceedings of the 3rd conference on Networked Systems Design and Implementation -Volume 3 (Berkeley, CA, USA 2006), USENIX Association, 12-12.
  6. Culler, D. E. and Arvind. Resource Requirements of Dataflow Programs. In ISCA '88: Proceedings of the 15th Annual International Symposium on Computer architecture (Los Alamitos, CA, USA 1988), IEEE Computer Society Press, 141-150.
  7. Dennis, J. B. and Misunas, D. P. A preliminary architecture for a basic data-flow processor. SIGARCH Computer Architecture News, 3, 4 (1974), 126-132.
  8. Donnelly, K. and Fluet, M. Transactional events. In Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming (New York, NY, USA 2006), ACM, 124-135.
  9. 9 Gajinov, V., Zyulkyarov, F., Unsal, O. S., Cristal, A., Ayguade, E., Harris, T., and Valero, M. QuakeTM: parallelizing a complex sequential application using transactional memory. In Proceedings of the 23rd international conference on Supercomputing (New York, NY, USA 2009), ACM, 126-135.
  10. Harris, T., Larus, J., and Rajwar, R. Transactional Memory (Second Edition). Morgan & Claypool Publishers, 2010.
  11. Harris, T., Marlow, S., Peyton-Jones, S., and Herlihy, M. Composable memory transactions. In Proceedings of the 10th ACM SIGPLAN symposium on Principles and practice of parallel programming (New York, NY, USA 2005), ACM, 48-60.
  12. Herlihy, M. and Moss, J. E. Transactional memory: architectural support for lock-free data structures. In Proceedings of the 20th annual international symposium on Computer architecture (New York, NY, USA 1993), ACM, 289-300.
  13. Jones, S. P., Gordon, A., and Finne, S. Concurrent Haskell. In Proceedings of the 23rd ACM Symposium on Principles of Programming Languages, POPL'96 (St. Petersburg Beach, Florida, USA 1996), ACM.
  14. Lesani, M. and Palsberg, J. Communicating memory transactions. In Proceedings of the 16th ACM symposium on Principles and practice of parallel programming (New York, NY, USA 2011), ACM, 157-168.
  15. 15 Luchangco, V. and Marathe, V. J. Transaction communicators: enabling cooperation among concurrent transactions. In Proceedings of the 16th ACM symposium on Principles and practice of parallel programming (New York, NY, USA 2011), ACM, 169-178.
  16. McDonald, A., Chung, J., Carlstrom, B. D., Minh, C. C., Chafi, H., Kozyrakis, C., and Olukotun, K. Architectural Semantics for Practical Transactional Memory. In Proceedings of the 33rd annual international symposium on Computer Architecture (Washington, DC, USA 2006), IEEE Computer Society, 53-65.
  17. Perez, J. M., Badia, R. M., and Labarta, J. A dependency-aware task- based programming environment for multi-core architectures. In Proceedings of the 2008 IEEE International Conference on Cluster Computing ( 2008), 142-151.
  18. Ramadan, H. E., Rossbach, C. J., and Witchel, E. Dependence-aware transactional memory for increased concurrency. In Proceedings of the 41st annual IEEE/ACM International Symposium on Microarchitecture (Washington, DC, USA 2008), IEEE Computer Society, 246-257.
  19. Silc, J., Robic, B., and Ungerer, T. Asynchrony in parallel computing: From dataflow to multithreading. 1997.