Difference between revisions of "Category:Parallel programming"

From SNIC Documentation
Jump to: navigation, search
Line 3: Line 3:
 
In a parallel program, the computational work to be performed by the application is divided into a number of work packages.  These work packages can then be assigned to a number of processing elements (e.g. cores on a modern multi-core processors or GPU) and have them executed independently.  This should deliver a faster time to solution, when compared to utilising a single processing element only.  By deploying several hundreds or thousands of processing elements, calculations which would otherwise take many years to complete can be completed in month or even weeks.   
 
In a parallel program, the computational work to be performed by the application is divided into a number of work packages.  These work packages can then be assigned to a number of processing elements (e.g. cores on a modern multi-core processors or GPU) and have them executed independently.  This should deliver a faster time to solution, when compared to utilising a single processing element only.  By deploying several hundreds or thousands of processing elements, calculations which would otherwise take many years to complete can be completed in month or even weeks.   
  
In a typical parallel program the work packages are however not fully independent.  They frequently require access to data generated or modified on other processing elements.  This data then needs communicating.  When using a [[distributed memory programming|distributed memory]] system communication is typically facilitated by deploying some form of [[message passing]].  On a [[shared memory]] system (e.g. multi core system) all computational threads have access to a common shared memory space, which allows data communication between the processing elements.  
+
In a typical parallel program the work packages are however not fully independent.  They frequently require access to data generated or modified on other processing elements.  This data then needs communicating.  When using a [[distributed memory programming|distributed memory]] system communication is typically facilitated by deploying some form of [[message passing]].  On a [[shared memory programming|shared memory]] system (e.g. multi core system) all computational threads have access to a common shared memory space, which allows data communication between the processing elements.  
  
  

Revision as of 16:01, 24 October 2011


In a parallel program, the computational work to be performed by the application is divided into a number of work packages. These work packages can then be assigned to a number of processing elements (e.g. cores on a modern multi-core processors or GPU) and have them executed independently. This should deliver a faster time to solution, when compared to utilising a single processing element only. By deploying several hundreds or thousands of processing elements, calculations which would otherwise take many years to complete can be completed in month or even weeks.

In a typical parallel program the work packages are however not fully independent. They frequently require access to data generated or modified on other processing elements. This data then needs communicating. When using a distributed memory system communication is typically facilitated by deploying some form of message passing. On a shared memory system (e.g. multi core system) all computational threads have access to a common shared memory space, which allows data communication between the processing elements.


Experts

No experts have currently registered expertise on this specific subject. List of registered field experts:

  FieldAE FTEGeneral activities
Anders Hast (UPPMAX)UPPMAXVisualisation, Digital Humanities30Software and usability for projects in digital humanities
Anders Sjölander (UPPMAX)UPPMAXBioinformatics100Bioinformatics support and training, job efficiency monitoring, project management
Anders Sjöström (LUNARC)LUNARCGPU computing
MATLAB
General programming
Technical acoustics
50Helps users with MATLAB, General programming, Image processing, Usage of clusters
Birgitte Brydsö (HPC2N)HPC2NParallel programming
HPC
Training, general support
Björn Claremar (UPPMAX)UPPMAXMeteorology, Geoscience100Support for geosciences, Matlab
Björn Viklund (UPPMAX)UPPMAXBioinformatics
Containers
100Bioinformatics, containers, software installs at UPPMAX
Chandan Basu (NSC)NSCComputational science100EU projects IS-ENES and PRACE.
Working on climate and weather codes
Diana Iusan (UPPMAX)UPPMAXComputational materials science
Performance tuning
50Compilation, performance optimization, and best practice usage of electronic structure codes.
Frank Bramkamp (NSC)NSCComputational fluid dynamics100Installation and support of computational fluid dynamics software.
Hamish Struthers (NSC)NSCClimate research80Users support focused on weather and climate codes.
Henric Zazzi (PDC)PDCBioinformatics100Bioinformatics Application support
Jens Larsson (NSC)NSCSwestore
Jerry Eriksson (HPC2N)HPC2NParallel programming
HPC
HPC, Parallel programming
Joachim Hein (LUNARC)LUNARCParallel programming
Performance optimisation
85HPC training
Parallel programming support
Performance optimisation
Johan HellsvikPDCMaterialvetenskap30materials theory, modeling of organic magnetic materials,
Johan Raber (NSC)NSCComputational chemistry50
Jonas Lindemann (LUNARC)LUNARCGrid computing
Desktop environments
20Coordinating SNIC Emerging Technologies
Developer of ARC Job Submission Tool
Grid user documentation
Leading the development of ARC Storage UI
Lunarc Box
Lunarc HPC Desktop
Krishnaveni Chitrapu (NSC)NSCSoftware development
Lars Eklund (UPPMAX)UPPMAXChemistry
Data management
FAIR
Sensitive data
100Chemistry codes, databases at UPPMAX, sensitive data, PUBA agreements
Lars Viklund (HPC2N)HPC2NGeneral programming
HPC
HPC, General programming, installation of software, support, containers
Lilit Axner (PDC)PDCComputational fluid dynamics50
Marcus Lundberg (UPPMAX)UPPMAXComputational science
Parallel programming
Performance tuning
Sensitive data
100I help users with productivity, program performance, and parallelisation. I also work with allocations and with sensitive data questions
Martin Dahlö (UPPMAX)UPPMAXBioinformatics10Bioinformatic support
Matias Piqueras (UPPMAX)UPPMAXHumanities, Social sciences70Support for humanities and social sciences, machine learning
Mikael Djurfeldt (PDC)PDCNeuroinformatics100
Mirko Myllykoski (HPC2N)HPC2NParallel programming
GPU computing
Parallel programming, HPC, GPU programming, advanced support
Pavlin Mitev (UPPMAX)UPPMAXComputational materials science100
Pedro Ojeda-May (HPC2N)HPC2NMolecular dynamics
Machine learning
Quantum Chemistry
Training, HPC, Quantum Chemistry, Molecular dynamics, R, advanced support
Peter Kjellström (NSC)NSCComputational science100All types of HPC Support.
Peter Münger (NSC)NSCComputational science60Installation and support of MATLAB, Comsol, and Julia.
Rickard Armiento (NSC)NSCComputational materials science40Maintainer of the scientific software environment at NSC.
Szilard PallPDCMolecular dynamics55Algorithms & methods for accelerating molecular dynamics, Parallelization and acceleration of molecular dynamics on modern high performance computing architectures, High performance computing, manycore and heterogeneous architectures, GPU computing
Thomas Svedberg (C3SE)C3SESolid mechanics
Torben Rasmussen (NSC)NSCComputational chemistry100Installation and support of computational chemistry software.
Wei Zhang (NSC)NSCComputational science
Parallel programming
Performance optimisation
code optimization, parallelization.
Weine Olovsson (NSC)NSCComputational materials science90Application support, installation and help
Åke Sandgren (HPC2N)HPC2NComputational science50SGUSI