Elements of Research Computing » History » Version 3
Version 2 (Miguel Dias Costa, 15/11/2011 13:53) → Version 3/10 (Miguel Dias Costa, 15/11/2011 14:11)
h1. Elements of Research Computing
{{>toc}}
The goal of this document is to introduce some h2. Goals
* Introduce concepts, tools and best practices for research oriented computing. computing
* Introductory level
* Advanced documents courses for specific topics can be arranged according to demand. Authors/speakers demand
* Speakers for specific topics are also welcome.
h2. Preliminary remarks
The categorization "Research Computing" was chosen because, on one hand, that's the audience of this document, researchers that use computational tools; on the other hand, traditional terms like HPC, Grid, Cloud tend to separate from the onset the infrastructure that is going to be used to solve a specific problem, but in most cases one doesn't know what the best infrastructure(s) will be.
In any case, not all aspects of Research Computing will be covered - we will focus mainly on non-interactive "jobs" that have some sort of intensive requirement such as performance, memory, network, storage, etc.
h2. Some terminology
* High Performance
** perform a specific task in a short period of time (e.g. low latency)
* High Throughput
** perform many tasks in a fixed period of time (e.g. high bandwidth)
* Concurrent
** concurrency is a property of the algorithm (e.g. independence of tasks)
* Parallel
** concurrent parts of an algorithm can (or not) be run in parallel
* Distributed
** distributed generally means loosely parallel (e.g. asynchronous)
* Grid
** Grid usally means a collection of clusters with interoperability at scheduler level
* Cloud
** Cloud means a lot of different things (e.g. Infraestructure/Platform/Software as Services)
h2. Aspects of Research Computing
* Project management
* Code verification
* Debugging
* Scability estimates
* Profiling
* Optimization
* Looking for parallelism
h2. Parallel Computing
h3. Embarassingly Parallel (= Distributed ?)
h4. bash subshells
h4. GNU Parallel
h4. Scheduler
h4. MapReduce
h3. Shared Memory Parallelization
h4. POSIX Threads
h4. OpenMP
h3. Distributed Memory Parallelization
h4. MPI
h3. General Purpose GPUs
h4. CUDA
h4. OpenCL
... welcome
{{>toc}}
The goal of this document is to introduce some h2. Goals
* Introduce concepts, tools and best practices for research oriented computing. computing
* Introductory level
* Advanced documents courses for specific topics can be arranged according to demand. Authors/speakers demand
* Speakers for specific topics are also welcome.
h2. Preliminary remarks
The categorization "Research Computing" was chosen because, on one hand, that's the audience of this document, researchers that use computational tools; on the other hand, traditional terms like HPC, Grid, Cloud tend to separate from the onset the infrastructure that is going to be used to solve a specific problem, but in most cases one doesn't know what the best infrastructure(s) will be.
In any case, not all aspects of Research Computing will be covered - we will focus mainly on non-interactive "jobs" that have some sort of intensive requirement such as performance, memory, network, storage, etc.
h2. Some terminology
* High Performance
** perform a specific task in a short period of time (e.g. low latency)
* High Throughput
** perform many tasks in a fixed period of time (e.g. high bandwidth)
* Concurrent
** concurrency is a property of the algorithm (e.g. independence of tasks)
* Parallel
** concurrent parts of an algorithm can (or not) be run in parallel
* Distributed
** distributed generally means loosely parallel (e.g. asynchronous)
* Grid
** Grid usally means a collection of clusters with interoperability at scheduler level
* Cloud
** Cloud means a lot of different things (e.g. Infraestructure/Platform/Software as Services)
h2. Aspects of Research Computing
* Project management
* Code verification
* Debugging
* Scability estimates
* Profiling
* Optimization
* Looking for parallelism
h2. Parallel Computing
h3. Embarassingly Parallel (= Distributed ?)
h4. bash subshells
h4. GNU Parallel
h4. Scheduler
h4. MapReduce
h3. Shared Memory Parallelization
h4. POSIX Threads
h4. OpenMP
h3. Distributed Memory Parallelization
h4. MPI
h3. General Purpose GPUs
h4. CUDA
h4. OpenCL
... welcome