Abstract
This paper reviews the programming landscape for parallel and network computing systems, focusing on four styles of concurrent programming models, and example languages/libraries. The four styles correspond to four scales of the targeted systems. At the smallest coprocessor scale, Single Instruction Multiple Thread (SIMT) and Compute Unified Device Architecture (CUDA) are considered. Transactional memory is discussed at the multicore or process scale. The MapReduce style is examined at the datacenter scale. At the Internet scale, Grid Service Markup Language (GSML) is reviewed, which intends to integrate resources distributed across multiple datacenters.
The four styles are concerned with and emphasize different issues, which are needed by systems at different scales. This paper discusses issues related to efficiency, ease of use, and expressiveness.
Similar content being viewed by others
References
Bryant R. Data-intensive supercomputing: the case for DISC. Technical Report CMU-CS-07-128, Carnegie Mellon University, 2007
Chaiken R, Jenkins B, Larson P, et al. SCOPE: easy and efficient parallel processing of massive data sets. In: International Conference of Very Large Data Bases (VLDB). VLDB Endowment, 2008, 1265–1276
Cooper B, Ramakrishnan R, et al. PNUTS: Yahoo!’s hosted data serving platform. In: International Conference of Very Large Data Bases (VLDB). VLDB Endowment, 2008, 1277–1278
Dean J, Ghemawat S. MapReduce: simplified data processing on large clusters. In: Proceedings of the 6th Symposium on Operating Systems Design and Implementation. USENIX Association, 2004, 137–150
Garland M, Grand S, Nickolls J, et al. Parallel computing experiences with CUDA. IEEE Micro, 2008, 28(4): 13–27
Guerraoui R, Herlihy M, Pochon B. Polymorphic contention management. In: Proceedings of the 19th International Symposium on Distributed Computing. New York: Springer Verlag, 2005, 303–323
Harris T, Fraser T. Language support for lightweight transactions. In: Proceedings of the 8th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications. New York: ACM Press, 2003, 388–402
Harris T, Marlow S, Peyton-Jones S, et al. Composable memory transactions. In: Proceedings of the 10th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. New York: ACM Press, 2005, 48–60
Herlihy M, Eliot J, Moss B. Transactional memory: architectural support for lock-free data structures. In: Proceedings of the 20th Annual International Symposium on Computer Architecture. New York: ACM Press, 1993, 289–300
Herlihy M, Luchangco V, Moir M, Scherer III W N. Software transactional memory for dynamic-sized data structures. In: Proceedings of the 22nd Annual Symposium on Principles of Distributed Computing. New York: ACM Press, 2003, 92–101
Herlihy M, Nir Shavit. The art of multiprocessor programming. Morgan Kaufmann, 2008
Hwang K. Xu Z. Scalable parallel computing: technology, architecture, programming. McGraw-Hill Science/Engineering/Math, 1998
Khronos Group. The OpenCL specification, version 1.0. 12/08/2008
Larus J, Kozyrakis C. Transactional memory. New York: Communication of the ACM, 2008, 51(7): 80–88
Larus R, Rajwar R. Transactional memory. Morgan & Claypool, 2006
Liu X, Radenac Y, Banatre J, et al. A chemical interpretation of GSML programs. In: 7th International Conference on Grid and Cooperative Computing(GCC2008). 2008, 459–466
Minh C, Trautmann M, Chung J, et al. An effective hybrid transactional memory system with strong isolation guarantees. In: Proceedings of the 34th International Symposium on Computer Architecture. New York: ACM Press, 2007, 69–80
NVIDIA. Corp. NVIDIA CUDA programming guide, version 2.0. 06/07/2008
Owens J, Luebke D, et al. A survey of general-purpose computation on graphics hardware. Computer Graphics Forum. 2007, 26(1): 80–113
Patterson D. The data center is the computer. New York: Communication of the ACM, 2008, 51(1): 105–105
Ryoo S, Rodrigues C, Baghsorkhi S, et al. Optimization principles and application performance evaluation of a multithreaded GPU using CUDA. In: Proceedings of the 13th Symposium on Principles and Practice of Parallel Programming. New York: ACMPress, 2008, 73–82
Saha B, Adl-Tabatabai R, Jacobson Q. Architectural support for software transactional memory. In: Proceedings of the 39th International Symposium on Microarchitecture. 2006, 185–196
Scherer III W N, Scott M L. Advanced contention management for dynamic software transactional memory. In: Proceedings of the 24th Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing. New York: ACM Press, 2005, 240–248
Shavit N, Touitou D. Software transactional memory. In: Proceedings of the 14th ACM Symposium on Principles of Distributed Computing. New York: ACM Press, 1995, 204–213
Shu C, Yu H, Liu H. Beap: an end-user agile programming paradigm for business applications. Journal of Computer Science and Technology, 2006, 21(4): 609–619
Tarditi D, Puri S, et al. Accelerator: using data parallelism to program GPUs for general-purpose uses. In: Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems. 2006, 325–335
Volkov V, Demmel J. Benchmarking GPUs to tune dense linear algebra. In: Proceedings of Conference on Supercomputing. IEEE Press, 2008
Zaharia M, Konwinski A, Joseph A, et al. Improving MapReduce performance in heterogeneous environments. In: 8th Symposium on Operating Systems Design and Implementation. USENIX Association, 2008
Author information
Authors and Affiliations
Corresponding authors
Rights and permissions
About this article
Cite this article
Xu, Z., He, Y., Lin, W. et al. Four styles of parallel and net programming. Front. Comput. Sci. China 3, 290–301 (2009). https://doi.org/10.1007/s11704-009-0028-0
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11704-009-0028-0