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 | ... |