CONTACT   |   QUICK LINKS   |   SITEMAP     search
 
Computer Sciences
image aboutBSC computational earth life computer applications marenostrum image
Computer Sciences
Programming Models
Home > Computer Sciences > Programming Models pdf print
 
 
Related links

Scalable Computer Architecture (SARC)

Advanced COmpiler Technologies for Embedded Streaming (ACOTES)
 

Parallel Programming Models

stroke

OVERVIEW

C/C++ and Fortran are widely used programming languages for sequential applications. There is a variety of parallel programming models based on them. MPI is build like a set of message passing primitives, usually called from C and Fortran. OpenMP proposes extensions to such languages. There are other programming languages that extend them in different ways: Unified Parallel C and Co-Array Fortran. And there are new language proposals like Fortress (SUN), Chapel (Cray), and X-10 (IBM), which promise improved programmer productivity. Our team explores such programming environments and provides support for the execution of parallel applications on top of some of them.

OBJECTIVES

The main goal of the team is to investigate new and current programming paradigms and the associated runtime system support to provide high performance to parallel applications. The target architectures range from multicore and SMT processors to shared- and distributed-memory systems. The Cell BE processor is currently one of our main targets.

Target architectures and programming models
  • At the programming model, we are proposing extensions to OpenMP to improve the expressiveness of the model. The Mercurium Compiler is able to exploit multiple levels of parallelism and generate work from multiple simultaneously executing threads. Once parallelism is spawned on a coarse level, new opportunities for parallelism on a finer level result in the generation of work for all or for restricted groups of processors. Although our primary focus is on OpenMP, we are also investigating ways to exploit the parallelism in distributed memory architectures, specially now that new systems start offering local memories that must be managed by the software (i.e., in the Cell processor).
  • The runtime system offers the basic services to spawn/join parallelism and synchronize across threads. The NthLib API is simple enough to be used for multithreaded programming on a variety of multiprocessor platforms. The goal is to have a platform easy to modify to incorporate new functionalities, as needed by the new architectures. For instance, currently is being used to experiment with new ways to exploit parallelism using local memories in the Cell processor.


PROJECTS/AREAS

  • Nanos runtime system: NthLib is a user-level threads library primarily designed to provide runtime support as the backend of the Mercurium compiler. The main focus is to provide effective support for multiple levels of parallelism. The library not only supports the structured parallelism offered by OpenMP but also supports the execution of parallel tasks in a non-structured way. This is useful for instance to support applications that use the client-server model.
  • Mercurium compiler infrastructure: The infrastructure provides support for OpenMP 2.5 for Fortran 77/90 and C. A mechanism based on templates allow the researcher to specify program transformations for each element of the OpenMP programming model.
  • NanosDSM: NanosDSM is the support of Distributed Shared Memory for Nanos. NanosDSM comes as a run-time library that is used to keep consistent the memory used in different nodes of a cluster, in such a way that a parallel application can be run as if it was on a shared-memory architecture.



PEOPLE
arrowALVAREZ MARTI, LLUC , RESIDENT STUDENT
arrowBARTHET, BASTIEN FRANK , RESIDENT STUDENT
arrowBERTRAN MONFORT, RAMON , RESIDENT STUDENT
arrowBUENO HEDO, JAVIER , RESIDENT STUDENT
arrowCABEZAS RODRIGUEZ, JAVIER , RESIDENT STUDENT
arrowCABRERA BENITEZ, DANIEL , RESIDENT STUDENT
arrowCOSTA PRATS, JUAN JOSE , ASSOCIATE RESEARCHER
arrowDURAN, ALEX , SENIOR RESEARCHER
arrowFARRERAS, MONTSE , ASSOCIATE RESEARCHER
arrowFERRER IBANEZ, ROGER , RESEARCHER
arrowGONZALEZ ALVAREZ, CECILIA , RESIDENT STUDENT
arrowGONZALEZ TALLADA, MARC , ASSOCIATE RESEARCHER
arrowMARTORELL BOFILL, XAVIER , PARALLEL PROGRAMMING MODELS GROUP MANAGER
arrowNAVARRO, NACHO , ASSOCIATE RESEARCHER
arrowPITSIANIS, NIKOS , RESEARCHER
arrowTERUEL GARCIA, JAVIER , RESEARCHER
arrowVILANOVA, LLUIS , RESIDENT STUDENT
arrowVUJIC, NIKOLA , RESIDENT STUDENT


PUBLICATIONS AND COMMUNICATIONS


Publications

Journals

Rosa M. Badia, José R. Herrero, Jesús Labarta, Josep M. Pérez, Enrique S. Quintana-Ortí, Gregorio Quintana-Ortí. Parallelizing Dense and Banded Linear Algebra Libraries Using SMPSs. Concurrency and Computation: Practice and Experience, volume 21, issue 18, , December 2009.



Judit Planas, Rosa M. Badia, Eduard Ayguadé and Jesus Labarta. Hierarchical task based programming with StarSs. International Journal of High Performance Computing Applications, vol. 23, no. 3, 284 - 299, , August 2009.



Alejandro Duran, Roger Ferrer, Eduard Ayguadé, Rosa M. Badia and Jesús Labarta. A Proposal to Extend the OpenMP Tasking Model with Dependent Tasks. International Journal of Parallel Programming, Volume 37, Issue 3 (2009), pages 292-305,
, June 2009.



Eduard Ayguadé, Nawal Copty, Alejandro Duran, Jay Hoeflinger, Yuan Lin, Federico Massaioli, Xavier Teruel, Priya Unnikrishnan, Guansong Zhang. The Design of OpenMP Tasks . IEEE Transactions on Parallel and Distributed Systems, volumen 20 (number 3),
ISSN:1045-9219
, March 2009.



Pieter Bellens, Josep M. Perez, Felipe Cabarcas, Alex Ramirez, Rosa M. Badia and Jesus Labarta. CellSs: Scheduling Techniques to Better Exploit Memory Hierarchy. Scientific Programming, vol 17, pp. 77-95,, , January 2009.



Josep M. Perez, Pieter Bellens, Rosa M. Badia and Jesus Labarta. CellSs: Making it easier to Program the Cell Broadband Engine processor . IBM Journal of R&D, Volume 51, Number 5, , August 2007.



J.J. Costa, T. Cortes, X. Martorell, E. Ayguade, and J. Labarta. Running OpenMP application efficiently on an everything-shared SDSM. Journal on Parallel and Distributed systems (JPDC), Volume 66, Issue 5, pp. 647-658 , June 2006.


David Ródenas, Xavier Martorell, Eduard Ayguadé, Jesus Labarta, George Almási, Calin Cascaval, José Castaños, and José Moreira. Exploiting Multilevel Parallelism using OpenMP on a Massive Multithreaded Architecture. Journal of Embedded Computing, Special issue: Issues in embedded single-chip multicore architectures, Vol 2(2), pp.141-155, ISSN 1740-4460
, April 2006.



Eduard Ayguade, Marc Gonzalez, Xavier Martorell and Gabriele Jost. Employing nested OpenMP for the parallelization of multi-zone computational fluid dynamics applications. Journal of Parallel and Distributed Computing, , August 2005.


George Almasi, Charles Archer, Jose G. Castanos, John A. Gunnels, C. Chris Erway, Philip Heidelberger, Xavier Martorell, Jose E. Moreira, Kurt Pinnow, Joseph Ratterman, Burkhard D. Steinmacher-Burow, William Gropp and Brian Toonen. Design and Implementation of message-passing services for the Blue Gene/L supercomputer. IBM Journal of Research and Development, 49(2/3), pp. 393-406, March 2005.


Book chapters

Jakub Kurzak, Hatem Ltaief, Jack Dongarra and Rosa M. Badia. Scheduling for Numerical Linear Algebra Library at Scale. High Speed and Large Scale Scientific Computing , pp. 3-26, IOS Press, , November 2009.



International Conferences

Josep M Perez, Rosa M. Badia and Jesus Labarta. Handling task dependencies under strided and aliased references. Proceedings of the 24th ACM International Conference on Supercomputing, , June 2010.



Roger Ferrer, Vicenç Beltran, Marc Gonzàlez, Xavier Martorell and Eduard Ayguadé. Analysis of Task Offloading for Accelerators . Proc. of the 5th International Conference, HiPEAC 2010, Pisa, Italy, January 25- 27, 2010, DOI: 10.1007/978-3-642-11515-8_24 , January 2010.



Xavier Teruel, Christopher Barton, Alejandro Duran, Xavier Martorell, Eduard Ayguadé, Priya Unnikrishnan, Guansong Zhang, and Raul Silvera. OpenMP Tasking Analysis for Programmers . Proc. of the CAS Conference 2009, , November 2009.
IBM Toronto Lab


Alejandro Duran, Xavier Teruel, Roger Ferrer, Xavier Martorell, Eduard Ayguadé. Barcelona OpenMP Tasks Suite: A Set of Benchmarks Targeting the Exploitation of Task Parallelism in OpenMP . Proc. of the 2009 International Conference on Parallel Processing (ICPP 2009), ISBN: 978-0-7695-3802-0, http://doi.ieeecomputersociety.org/10.1109/ICPP.2009.64 , September 2009.



Pieter Bellens, Josep M. Perez, Rosa M. Badia and Jesus Labarta. Just-in-time renaming and Lazy Write-back on the Cell/BE. The Second International Workshop on Parallel Programming Models and Systems Software for High-End Computing (P2S2-2009), workshop en 38th INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING (ICPP-2009), , September 2009.



Eduard Ayguade, Rosa M. Badia, Francisco D. Igual, Jesus Labarta, Rafael Mayo and Enrique S. Quintana-Ortí. An Extension of the StarSs Programming Model for Platforms with Multiple GPUs. Proceedings of the EuroPar Conference (EuroPar 2009), , August 2009.



Pieter Bellens, Josep M. Pérez, Rosa M. Badia and Jesús Labarta. Exploiting Locality on the Cell/B.E. Through Bypassing. n IX International Workshop on Systems, Architectures, Modeling, and Simulation (SAMOS Workshop IX), pp. 318-328, Samos (Greece), , July 2009.



Eduard Ayguade, Rosa M. Badia, Daniel Cabrera, Alejandro Duran, Marc Gonzalez, Francisco Igual, Daniel Jimenez, Jesus Labarta, Xavier Martorell, Rafael Mayo, Jose M. Perez and Enrique S. Quintana-Ortí. A Proposal to Extend the OpenMP Tasking Model for Heterogeneous Architectures. Proceedings of the International Workshop on OpenMP (IWOMP 2009), , June 2009.



Rosa M. Badia, Josep M. Perez, Eduard Ayguadé, and Jesús Labarta. Impact of the memory hierarchy on shared memory architectures in multicore programming models. 17th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP2009), Bauhaus-University Weimar, Germany, , February 2009.



Pieter Bellens, Josep M. Perez, Felipe Cabarcas, Alex Ramirez, Rosa M. Badia and Jesus Labarta. "CellSs: Scheduling Techniques to Better Exploit Memory Hierarchy. Scientific Programming 17 (2009), 77-95, DOI 10.3233/SPR-2009-0272, , January 2009.



Alejandro Duran, Julita Corbalán, Eduard Ayguadé. An Adaptive Cut-off for Task Parallelism . Proceedings of the Supercomputing Conference (SC08), , November 2008.
Austin, TX, USA


Xavier Teruel, Priya Unnikrishnan, Xavier Martorell, Eduard Ayguade, Raul Silvera, Guansong Zhang, and Ettore Tiotto . OpenMP Tasks in IBM XL Compilers . Proceedings of CASCON 2008,
, October 2008.
IBM Toronto Lab, Toronto, Canada 


Marc Gonzalez, Nikola Vujic, Xavier Martorell, Eduard Ayguade, Alexandre E. Eichenberger, Tong Chen, Zehra Sura, Tao Zhang, Kevin O'Brien, and Kathryn O'Brien . Hybrid Access-Specific Software Cache Techniques for the Cell BE Architecture . Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques (PACT'08), pp. 292-302 , October 2008.
Toronto, Canada


Josep M. Perez, Rosa M. Badia, and Jesus Labarta. A dependency-aware task-based programming environment for multi-core architectures. Proceedings of the 2008 IEEE International Conference on Cluster Computing, pp. 142�151, September 2008.



Tong Chen, Tao Zhang, Zehra Sura, Kathryn O'Brien, Kevin O'Brien, Marc Gonzalez Tallada. Prefetching Irregular References for Software Cache on Cell . Proceedings of the International Symposium on Code Generation and Optimization (CGO'08), , April 2008.
Boston, MA, USA


Xavier Teruel, Xavier Martorell, Alejandro Duran, Roger Ferrer, Eduard Ayguade . Support for OpenMP Tasks in Nanos v4 . Proceedsings of CASCON 2007, , October 2007.
IBM Toronto Lab, Toronto, Canada 


Christopher Barton, Calin Cascaval, George Almasi, Rahul Garg, Jose Nelson Amaral and Montse Farreras. Multidimensional Blocking in UPC . Proceedings of the 20th International Workshop on Languages and Compilers for Parallel Computing, Lecture Notes in Computer Science, vol. 5234, pp. 47-62, ISBN: 978-3-540-85260-5 , October 2007.
Siebel Center for Computer Science Urbana, Illinois


Eduard Ayguadé, Alejandro Duran, Jay Hoeflinger, Federico Massaioli, Xavier Teruel . An Experimental Evaluation of the New OpenMP Tasking Model . Proceedings of the 20th International Workshop on Languages and Compilers for Parallel Computing (LCPC), Lecture Notes in Computer Science, vol. 5234, pp.63-77,  ISBN: 978-3-540-85260-5 , October 2007.
Siebel Center for Computer Science Urbana, Illinois


Jairo Balart, Marc Gonzalez, Xavier Martorell, Eduard Ayguade, Zehra Sura, Tong Chen, Tao Zhang, Kevin O'Brien, Kathryn O'Brien . A Novel Asynchronous Software Cache Implementation for the Cell-BE Processor . Proceedings of the 20th International Workshop on Languages and Compilers for Parallel Computing, Lecture Notes in Computer Science, vol. 5234, pp. 125-140, ISBN: 978-3-540-85260-5 , October 2007.
Siebel Center for Computer Science Urbana, Illinois


Daniel Jimenez-Gonzalez, Xavier Martorell, Alex Ramirez . Performance Analysis of Cell Broadband Engine for High Memory Bandwidth Applications . Proceedings of the 7th International Symposium on Performance Analysis of Systems & Software (ISPASS 2007), , April 2007.
San Jose, CA, USA


Pieter Bellens, Josep M. Perez, Rosa M. Badia and Jesus Labarta. CellSs: A Programming Model for the Cell BE Architecture . in proceedings of the ACM/IEEE SC 2006 Conference, , November 2006.



M. Farrera, T. Cortes, J. Labarta, and G. Almasi. Scaling MPI to short-memory MPPs such as BG/L. 20th ACM International Conference on Supercomputing (ICS-06), Cairns, Australia, June 2006.


Christopher Barton, Calin Cascaval, George Almasi, Yili Zheng, Montse Farreras and Jose Nelson Amaral. Shared Memory Programming for Large Scale Machines . Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation (PLDI),
pp. 108-117, ISBN:1-59593-320-4
, June 2006.
Ottawa, Canada


Alejandro Duran, Marc Gonzalez, Julita Corbalan, Xavier Martorell, Eduard Ayguade, Jesus Labarta, and Raul Silvera. Automatic Thread Distribution for Nested Parallelism in OpenMP. 19th ACM International Conference on Supercomputing, Cambridge, MA, USA, June 2005.


George Almasi, Charles Archer, C. Chris Erway, Philip Heidelberger, Xavier Martorell, Jose E. Moreira, Burkhard Steinmacher-Burow, and Yili O. Zheng. Optimization of MPI Collective Communication on Blue Gene/L Systems. 19th ACM International Conference on Supercomputing, Cambridge, MA, USA, June 2005.


David Rodenas, Xavier Martorell, Eduard Ayguade, Jesus Labarta, George Almasi, Calin Cascaval, Jose Castanos and Jose Moreira. Optimizing NANOS OpenMP for the IBM Cyclops Multithreaded Architecture. 19th International Parallel and Distributed Processing Symposium (IPDPS '05), Denver, CO, USA, April 2005.


Felix Freitag, Montse Farreras, Toni Cortes, Jesus Labarta. Predicting MPI buffer addresses . 4th International Conference on Computational science (ICCS), , June 2004.
Krakov, Poland


Joan J. Costa, Toni Cortes, Xavier Martorell, Eduard Ayguadé and Jesús Labarta. Running OpenMP Applications Efficiently on an Everything-shared SDSM. 18th International Parallel and Distributed Processing Symposium (IPDPS-2004), Best paper award of the Software Track, April 2004.


Felix Freitag, Jordi Caubet, Montse Farreras, Toni Cortés and Jesús Labarta. Exploring the Predictability of MPI Messages. 17th International Parallel and Distributed Processing Symposium (IPDPS-2003), , April 2003.


National Conferences

David Rodenas, Xavier Martorell, Juanjo Costa, Toni Cortes, and Jesus Labarta. Running BT Multi-Zone on non-shared memory machines with OpenMP SDSM instead of MPI. XVI Jornadas de Paralelismo, Granada, Spain, September 2005.


Jairo Balart, Alex Duran, Marc Gonzalez, Xavier Martorell, Eduard Ayguade, Jesus Labarta. Experiences parallelizing a web server with OpenMP. XVI Jornadas de Paralelismo, Granada, Spain, September 2005.


Workshops

Roger Ferrer, Alejandro Duran, Xavier Martorell, Eduard Ayguadé. Unrolling Loops Containing Task Parallelism . Proceedings of the 22nd International Workshop on Languages and Compilers for Parallel Computing, , October 2009.



Nikola Vujic, Lluc Àlvarez, Marc Gonzàlez, Xavier Martorell, Eduard Ayguadé. Adaptive and Speculative Memory Consistency Support for Multi-core Architectures with On-Chip Local Memories . Proceedings of the 22nd International Workshop on Languages and Compilers for Parallel Computing, , October 2009.



Roger Ferrer, Vicenc Beltran, Marc Gonzalez, Xavier Martorell, and Eduard Ayguade. Achieving High Memory Performance from Heterogeneous Architectures with the SARC Programming Model . 10th Workshop on Memory Performance: Dealing with Applications, systems, and architecture (MEDEA 2009), Proc. of the 10th MEDEA Workshop, ACM, ISBN: 978-1-60558-830-8 , September 2009.



Eduard Ayguadé, Rosa M. Badia, Daniel Cabrera, Alejandro Duran, Marc González, Francisco D. Igual, Daniel Jimenez, Jesús Labarta, Xavier Martorell, Rafael Mayo, Josep M. Pérez, Enrique S. Quintana-Ortí. A Proposal to Extend the OpenMP Tasking Model for Heterogeneous Architectures . Proc. of the 5th International Workshop on OpenMP, LNCS Volume 5568/2009, DOI: 10.1007/978-3-642-02303-3_13 , June 2009.



Roger Ferrer, Marc Gonzalez, Federico Silla, Xavier Martorell, Eduard Ayguade . Evaluation of Memory Performance on the Cell BE with the SARC Programming Model . Proceedings of the 9th Workshop on Memory Performance: Dealing with Applications, systems, and architecture (MEDEA'08), , October 2008.
Toronto, Canada


Nikola Vujic, Marc Gonzalez, Xavier Martorell and Eduard Ayguade. Automatic Pre-Fetch and Modulo Scheduling Transformations for the Cell BE Architecture . Proceedings of the 21st Annual Workshop Languages and Compilers for Parallel Computing (LCPC'08), , July 2008.
Univ. of Alberta, Edmonton, Canada


Alex Duran, Josep M. Perez, Eduard Ayguade, Rosa M. Badia and Jesus Labarta. Extending the OpenMP Tasking Model to Allow Dependent Tasks. proceedings of International Workshop on OpenMP, , May 2008.



Alejandro Duran, Julita Corbalan and Eduard Ayguade. Evaluation of OpenMP Task scheduling strategies . Proceedings of the 4thInternational Workshop on OpenMP (IWOMP'08), , May 2008.
Purdue University, West Lafayette, IN, USA


Eduard Ayguade(UPC), Nawal Copty(Sun), Alejandro Duran(UPC), Jay Hoeflinger(Intel), Yuan Lin(Sun), Federico Massaioli(CASPUR), Ernesto Su(Intel), Priya Unnikrishnan(IBM), Guansong Zhang (IBM) . A proposal for task parallelism in OpenMP . Proceedings of the 3rd International Workshop on OpenMP (IWOMP'07), , June 2007.
Tsinghua University, Beijing, China


Jairo Balart, Marc Gonzàlez, Xavier Martorell, Eduard Ayguadé and Jesús Labarta. Runtime Address Space Computation for SDSM Systems. The 19th Int. Workshop on Languages and Compilers for Parallel Computing (LCPC 2006),
, November 2006.
New Orleans, Louisiana


Alejandro Duran, Roger Ferrer, Juan José Costa, Marc Gonzàlez, Xavier Martorell, Eduard Ayguadé, and Jesús Labarta. A Proposal for Error Handling in OpenMP. International Workshop on OpenMP (IWOMP 2006),
, June 2006.
University of Reims Champagne Ardenne


Xavier Martorell, Marc Gonzàlez, Alejandro Duran, Jairo Balart, Roger Ferrer, Eduard Ayguadé, and Jesús Labarta. Techniques Supporting threadprivate in OpenMP. 11th Int. Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS 2006), (in conjunction with IPDPS2006) , April 2006.
Rhodes Island, Greece


Jairo Balart, Alejandro Duran, Marc Gonzalez, Xavier Martorell, Eduard Ayguade, and Jesus Labarta. Experiences parallelizing a Web Server with OpenMP. First International Workshop on OpenMP (IWOMP 2005), Eugene, Oregon, USA, June 2005.


Eduard Ayguade, Bob Blainey, Alejandro Duran, Jesus Labarta, Francisco Martinez, Xavier Martorell and Raul Silvera. Is the SCHEDULE Clause Really Necessary in OpenMP?. International Workshop on OpenMP Applications and Tools (WOMPAT2003), pp. 69-83. Lecture Notes in Computer Science, vol. 2716. , June 2003.


George Almasi, Eduard Ayguade, Calin Cascaval, Jose Castanos, Jesus Labarta, Fracisco Martinez, Xavier Martorell and Jose Moreira. Evaluation of OpenMP for the Cyclops Mulithreaded Architecture. International Workshop on OpenMP Applications and Tools (WOMPAT2003), pp. 147-159. Lecture Notes on Computer Science, vol. 2716. , June 2003.


Communications

Daniele Lezzi, Rosa M. Badia. OGF-Europe on Software development tools for distributed computing . OGF25, , March 2009.
Catania (Sicilia, Italia)


 
  top
link_top
  Barcelona Supercomputing Center, 2010 - Legal Notice
 
link_top