Project

General

Profile

Elements of Research Computing » History » Version 6

Miguel Dias Costa, 15/11/2011 14:21

1 1 Miguel Dias Costa
h1. Elements of Research Computing
2 1 Miguel Dias Costa
3 1 Miguel Dias Costa
{{>toc}}
4 1 Miguel Dias Costa
5 3 Miguel Dias Costa
The goal of this document is to introduce some concepts, tools and best practices for research oriented computing. Advanced documents for specific topics can be arranged according to demand. Authors/speakers for specific topics are also welcome.
6 1 Miguel Dias Costa
7 3 Miguel Dias Costa
h2. Preliminary remarks
8 3 Miguel Dias Costa
9 3 Miguel Dias Costa
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.
10 3 Miguel Dias Costa
11 3 Miguel Dias Costa
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.
12 3 Miguel Dias Costa
13 3 Miguel Dias Costa
h2. Some terminology
14 3 Miguel Dias Costa
15 3 Miguel Dias Costa
* High Performance
16 3 Miguel Dias Costa
** perform a specific task in a short period of time (e.g. low latency)
17 3 Miguel Dias Costa
18 3 Miguel Dias Costa
* High Throughput
19 3 Miguel Dias Costa
** perform many tasks in a fixed period of time (e.g. high bandwidth)
20 3 Miguel Dias Costa
21 3 Miguel Dias Costa
* Concurrent
22 3 Miguel Dias Costa
** concurrency is a property of the algorithm (e.g. independence of tasks)
23 3 Miguel Dias Costa
24 3 Miguel Dias Costa
* Parallel
25 3 Miguel Dias Costa
** concurrent parts of an algorithm can (or not) be run in parallel
26 3 Miguel Dias Costa
27 3 Miguel Dias Costa
* Distributed
28 3 Miguel Dias Costa
** distributed generally means loosely parallel (e.g. asynchronous)
29 3 Miguel Dias Costa
30 3 Miguel Dias Costa
* Grid
31 3 Miguel Dias Costa
** Grid usally means a collection of clusters with interoperability at scheduler level
32 3 Miguel Dias Costa
33 3 Miguel Dias Costa
* Cloud
34 3 Miguel Dias Costa
** Cloud means a lot of different things (e.g. Infraestructure/Platform/Software as Services)
35 3 Miguel Dias Costa
36 3 Miguel Dias Costa
h2. Aspects of Research Computing
37 3 Miguel Dias Costa
38 6 Miguel Dias Costa
* [[Reproducibility]]
39 6 Miguel Dias Costa
* [[Project management]]
40 6 Miguel Dias Costa
* [[Coding]]
41 6 Miguel Dias Costa
* [[Debugging]]
42 6 Miguel Dias Costa
* [[Profiling]]
43 6 Miguel Dias Costa
* [[Optimization]]
44 6 Miguel Dias Costa
* [[Parallelization]]
45 1 Miguel Dias Costa
46 5 Miguel Dias Costa
h2. Project management
47 5 Miguel Dias Costa
48 5 Miguel Dias Costa
h2. Code verification
49 5 Miguel Dias Costa
50 5 Miguel Dias Costa
h2. Debugging
51 5 Miguel Dias Costa
52 5 Miguel Dias Costa
h2. Scability estimates
53 5 Miguel Dias Costa
54 5 Miguel Dias Costa
h2. Profiling
55 5 Miguel Dias Costa
56 5 Miguel Dias Costa
h2. Optimization
57 5 Miguel Dias Costa
58 5 Miguel Dias Costa
h2. Parallelization
59 3 Miguel Dias Costa
60 3 Miguel Dias Costa
h3. Embarassingly Parallel (= Distributed ?)
61 3 Miguel Dias Costa
62 4 Miguel Dias Costa
* bash subshells
63 3 Miguel Dias Costa
64 4 Miguel Dias Costa
* GNU Parallel
65 3 Miguel Dias Costa
66 4 Miguel Dias Costa
* Scheduler
67 3 Miguel Dias Costa
68 4 Miguel Dias Costa
* MapReduce
69 3 Miguel Dias Costa
70 3 Miguel Dias Costa
h3. Shared Memory Parallelization
71 3 Miguel Dias Costa
72 4 Miguel Dias Costa
* POSIX Threads
73 3 Miguel Dias Costa
74 4 Miguel Dias Costa
* OpenMP
75 3 Miguel Dias Costa
76 3 Miguel Dias Costa
h3. Distributed Memory Parallelization
77 3 Miguel Dias Costa
78 4 Miguel Dias Costa
* MPI
79 3 Miguel Dias Costa
80 3 Miguel Dias Costa
h3. General Purpose GPUs
81 3 Miguel Dias Costa
82 4 Miguel Dias Costa
* CUDA
83 3 Miguel Dias Costa
84 4 Miguel Dias Costa
* OpenCL
85 3 Miguel Dias Costa
86 3 Miguel Dias Costa
...