Ir al contenido

Documat


A parallelisation tale of two languages

  • Tomeu, Antonio J. [1] ; Salguero, Alberto G. [1] ; Capel, Manuel I. [2]
    1. [1] Universidad de Cádiz

      Universidad de Cádiz

      Cádiz, España

    2. [2] Universidad de Granada

      Universidad de Granada

      Granada, España

  • Localización: Annals of Multicore and GPU Programming: AMGP, ISSN 2341-3158, Vol. 2, Nº. 1, 2015, págs. 81-94
  • Idioma: inglés
  • Enlaces
  • Resumen
    • There are several APIs (C+11, TBB, OpenMPI,... ) that properly support  code parallelism in any of the most used programming languages (C++, C\#,Java, Phyton,  or Erlang) in telecommunications industry nowadays, but it is a complicated issue for a novel programmer of multicores to decide which one to choose in order to get an application parallelized with high performance.C++11 is the new ISO standard for C++, which offers atomic declaration of variables, load/store operators and supports portable multithreaded programming in this familiy of development languages.Java SE has been including new primitives for doing high--level concurrency in Java programs from version 5.0 on. Currently, Java SE 8 also offers parallel syntactical constructs for new multicore architectures programs, such as lambda functions  with an efficient tail recursion implementation or execution to future.Within a similar historical context,  as in the Charles Dickens' A Tale of Two Cities, there may exist equivalent problems in two close--up places but they can be solved in a quite different way. In this respect, we are performing a systematic comparative study between two programming languages that are intensively deployed in industry today, probably due to their popular parallel programming APIs, Java Concurrency Utilities and  C++11 Standard Library, respectively. We carry out a set of measurements to compare the execution time and performance (speedup) of parallel versions of  (a) Belousov-Zhabotinsky chemical reaction simulation with cellular automata and (b) Discrete 2D-Convolution.Differently from other similar work in the field, we focus here more on foretelling performance results that different APIs are offering to non-specialized programmers than in low--level implementation details.

  • Referencias bibliográficas
    • Adamatzky, A., De Lacy, B. & Asai, T. Reaction-Diffusion Computers. Elsevier B. V., 2005.
    • Akhter, S.& Roberts, J. Multicore Programming Incresing Performance Through Sofware Multithreading. Intel Press, Digital Edition, 2006.
    • Alba, E. Parallel evolutionary algorithms can achieve super-linear performance. Information Processing Letters 82, 7-13, 2002.
    • Al Umairy, S., Van Amesfoort, A., Setija, I., Van Beurden, M. & Sips, H. On the Use of Small 2D Convolutions on GPUs. Lecture Notes in...
    • Ball, P. Designing the Molecular World: Chemistry at the frontier. Princeton University Press, 1994.
    • Bai, Q., Shao, Y., Pan, D., Zhang, Y. Liu, H. & Yao X. Parallel high-performance grid computing: capabilities and opportunities of a novel...
    • Bandman, O. Mapping Physical Phemomenon to CA-Models. Automata-2008. Theory and Applications of Cellular Automata, 381-395. Luniver Press,...
    • C++ Reference. (http://en.cppreference.com/w/). 2014.
    • Deutsch, A. & Dorman, S. Cellular Automaton Modeling of Biological Pattern Formation. Characterizacion, Applications and Analysys. Birkauser...
    • Fernandez, J. Java 7 Concurrency Cookbook. Packt Publishing, 2012.
    • Göetz, B., Peierls, T., Bloch, J., Bowbeer, J., Holmes, D. & Lea, D. Java Concurrency in Practice. Addison-Wesley, 2006.
    • Goram. A.K. & From, A. A Comparative analysis between parallale models in C/C++ and C#/Java. (http://kth.diva-portal.org/smash/get/diva2:648395/FULLTEXT01.pdf)....
    • Hao W., Lu Z., Xu C., Yan L. & Yurong S. Quantifying and analyzing neighborhood configuration characteristics to cellular automata for...
    • Java Platform, Standard Edition 8. API Specification (http://docs.oracle.com/javase/8/docs/api/). Oracle Corporation.
    • Lea, D. Programación Concurrente en Java. Principios y Patrones de Diseño. Addison Wesley, 2000.
    • Nagashima U., Hyugaji, S. Sekiguchi, S. Sato, M. & Hosoya, H. An experience with super-linear speedup achieved by parallel computing on...
    • Mikhailov, A. S. and Showalter, K., Control of waves, patterns and turbulence in chemical systems. Physics Reports 425, 79-194, 2006.
    • Nefedev, K.V. & Peretyako, A.A. Superlinear Speedup of Parallel Calculation of Finite Number Ising Spins Partition Function. Proceedings...
    • Oaks, S. & Wong, H. Java Threads, 3rd Edition. O'Reilly, 2004.
    • Petrou, M & Petrou, C. Image Processing: The Fundamentals. John Wiley & Sons. 2010
    • Rauber, T. & Rünger, G. Parallel Programming for Multicore and Cluster Systems. Second Edition. Springer-Verlag, 2012.
    • Robbins, K. & Robbins, S. Practical Unix Programming. A Guide to Concurrency, Communication and Multithreading. Prentice Hall, 1996.
    • Subramanian, V. Programming Concurrency on the JVM: Mastering Synchronization, STM and Actors. The Pragmatic Programmers, 2011.
    • Sharifulina, A. & Elokhin, V. Simulation of Heterogeneous Catalytic Reaction by Asynchronous Cellular Automata on Multicomputer. Parallel...
    • Williams, A. C++ Concurrency in Action. Practical Multithreading. Manning, 2012.
    • Wadhawam, M., Midha, P. Kaur, I. & Kaur, S. An Investigation of the Tools of Seismic Data Processing. Proceedings of the 8th Biennial...

Fundación Dialnet

Mi Documat

Opciones de artículo

Opciones de compartir

Opciones de entorno