Elements of Research Computing » History » Version 4
Miguel Dias Costa, 15/11/2011 14:13
| 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 | 3 | Miguel Dias Costa | * Project management |
| 39 | 3 | Miguel Dias Costa | * Code verification |
| 40 | 3 | Miguel Dias Costa | * Debugging |
| 41 | 3 | Miguel Dias Costa | * Scability estimates |
| 42 | 3 | Miguel Dias Costa | * Profiling |
| 43 | 3 | Miguel Dias Costa | * Optimization |
| 44 | 3 | Miguel Dias Costa | * Looking for parallelism |
| 45 | 3 | Miguel Dias Costa | |
| 46 | 3 | Miguel Dias Costa | h2. Parallel Computing |
| 47 | 3 | Miguel Dias Costa | |
| 48 | 3 | Miguel Dias Costa | h3. Embarassingly Parallel (= Distributed ?) |
| 49 | 3 | Miguel Dias Costa | |
| 50 | 4 | Miguel Dias Costa | * bash subshells |
| 51 | 3 | Miguel Dias Costa | |
| 52 | 4 | Miguel Dias Costa | * GNU Parallel |
| 53 | 3 | Miguel Dias Costa | |
| 54 | 4 | Miguel Dias Costa | * Scheduler |
| 55 | 3 | Miguel Dias Costa | |
| 56 | 4 | Miguel Dias Costa | * MapReduce |
| 57 | 3 | Miguel Dias Costa | |
| 58 | 3 | Miguel Dias Costa | h3. Shared Memory Parallelization |
| 59 | 3 | Miguel Dias Costa | |
| 60 | 4 | Miguel Dias Costa | * POSIX Threads |
| 61 | 3 | Miguel Dias Costa | |
| 62 | 4 | Miguel Dias Costa | * OpenMP |
| 63 | 3 | Miguel Dias Costa | |
| 64 | 3 | Miguel Dias Costa | h3. Distributed Memory Parallelization |
| 65 | 3 | Miguel Dias Costa | |
| 66 | 4 | Miguel Dias Costa | * MPI |
| 67 | 3 | Miguel Dias Costa | |
| 68 | 3 | Miguel Dias Costa | h3. General Purpose GPUs |
| 69 | 3 | Miguel Dias Costa | |
| 70 | 4 | Miguel Dias Costa | * CUDA |
| 71 | 3 | Miguel Dias Costa | |
| 72 | 4 | Miguel Dias Costa | * OpenCL |
| 73 | 3 | Miguel Dias Costa | |
| 74 | 3 | Miguel Dias Costa | ... |