Skip to content

Commit 784ec89

Browse files
Merge pull request #161 from coding-for-reproducible-research/parallel_computing
Add details for the parallel computing course
2 parents 37b82d9 + 99953cb commit 784ec89

File tree

7 files changed

+340
-3
lines changed

7 files changed

+340
-3
lines changed

_static/workshops_network_python_ds.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ <h1></h1>
282282

283283

284284
// parsing and collecting nodes and edges from the python
285-
nodes = new vis.DataSet([{"color": "#FFD700", "id": "Introduction to Version Control with Git and GitHub", "label": "Introduction to Version Control with Git and GitHub", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Version Control with Git and GitHub\nCourse Pre-reqs: Introduction to Unix\nSubsequent Courses: Intermediate Version Control"}, {"color": "#FFD700", "id": "Intermediate Version Control", "label": "Intermediate Version Control", "level": 3, "shape": "dot", "size": 10, "title": "Course Name: Intermediate Version Control\nCourse Pre-reqs: Introduction to Version Control with Git and GitHub\nSubsequent Courses: None"}, {"color": "#FFD700", "id": "Introduction to Unix", "label": "Introduction to Unix", "level": 1, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Unix\nCourse Pre-reqs: None\nSubsequent Courses: Introduction to Version Control with Git and GitHub"}, {"color": "#FFD700", "id": "Introduction to Python", "label": "Introduction to Python", "level": 1, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Python\nCourse Pre-reqs: None\nSubsequent Courses: Python for Data Analysis "}, {"color": "#FFD700", "id": "Python for Data Analysis ", "label": "Python for Data Analysis ", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Python for Data Analysis \nCourse Pre-reqs: Introduction to Python\nSubsequent Courses: None"}]);
285+
nodes = new vis.DataSet([{"color": "#FF6347", "id": "Introduction to Version Control with Git and GitHub", "label": "Introduction to Version Control with Git and GitHub", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Version Control with Git and GitHub\nCourse Pre-reqs: Introduction to Unix\nSubsequent Courses: Intermediate Version Control"}, {"color": "#FF6347", "id": "Intermediate Version Control", "label": "Intermediate Version Control", "level": 3, "shape": "dot", "size": 10, "title": "Course Name: Intermediate Version Control\nCourse Pre-reqs: Introduction to Version Control with Git and GitHub\nSubsequent Courses: None"}, {"color": "#FF6347", "id": "Introduction to Unix", "label": "Introduction to Unix", "level": 1, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Unix\nCourse Pre-reqs: None\nSubsequent Courses: Introduction to Version Control with Git and GitHub"}, {"color": "#FF6347", "id": "Introduction to Python", "label": "Introduction to Python", "level": 1, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Python\nCourse Pre-reqs: None\nSubsequent Courses: Python for Data Analysis "}, {"color": "#FF6347", "id": "Python for Data Analysis ", "label": "Python for Data Analysis ", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Python for Data Analysis \nCourse Pre-reqs: Introduction to Python\nSubsequent Courses: None"}]);
286286
edges = new vis.DataSet([{"arrows": "to", "from": "Introduction to Version Control with Git and GitHub", "to": "Intermediate Version Control", "width": 1}, {"arrows": "to", "from": "Introduction to Unix", "to": "Introduction to Version Control with Git and GitHub", "width": 1}, {"arrows": "to", "from": "Introduction to Python", "to": "Python for Data Analysis ", "width": 1}]);
287287

288288
nodeColors = {};

_static/workshops_network_r_ds.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ <h1></h1>
282282

283283

284284
// parsing and collecting nodes and edges from the python
285-
nodes = new vis.DataSet([{"color": "#FF6347", "id": "Introduction to R", "label": "Introduction to R", "level": 1, "shape": "dot", "size": 10, "title": "Course Name: Introduction to R\nCourse Pre-reqs: None\nSubsequent Courses: Regression analysis with R, Working With Data In R"}, {"color": "#FF6347", "id": "Regression analysis with R", "label": "Regression analysis with R", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Regression analysis with R\nCourse Pre-reqs: Introduction to R\nSubsequent Courses: Advanced Regression Analysis With R "}, {"color": "#FF6347", "id": "Working With Data In R", "label": "Working With Data In R", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Working With Data In R\nCourse Pre-reqs: Introduction to R\nSubsequent Courses: None"}, {"color": "#FF6347", "id": "Advanced Regression Analysis With R ", "label": "Advanced Regression Analysis With R ", "level": 3, "shape": "dot", "size": 10, "title": "Course Name: Advanced Regression Analysis With R \nCourse Pre-reqs: Regression analysis with R\nSubsequent Courses: None"}, {"color": "#FF6347", "id": "Introduction to Version Control with Git and GitHub", "label": "Introduction to Version Control with Git and GitHub", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Version Control with Git and GitHub\nCourse Pre-reqs: Introduction to Unix\nSubsequent Courses: Intermediate Version Control"}, {"color": "#FF6347", "id": "Intermediate Version Control", "label": "Intermediate Version Control", "level": 3, "shape": "dot", "size": 10, "title": "Course Name: Intermediate Version Control\nCourse Pre-reqs: Introduction to Version Control with Git and GitHub\nSubsequent Courses: None"}, {"color": "#FF6347", "id": "Introduction to Unix", "label": "Introduction to Unix", "level": 1, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Unix\nCourse Pre-reqs: None\nSubsequent Courses: Introduction to Version Control with Git and GitHub"}]);
285+
nodes = new vis.DataSet([{"color": "#FFD700", "id": "Introduction to R", "label": "Introduction to R", "level": 1, "shape": "dot", "size": 10, "title": "Course Name: Introduction to R\nCourse Pre-reqs: None\nSubsequent Courses: Regression analysis with R, Working With Data In R"}, {"color": "#FFD700", "id": "Regression analysis with R", "label": "Regression analysis with R", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Regression analysis with R\nCourse Pre-reqs: Introduction to R\nSubsequent Courses: Advanced Regression Analysis With R "}, {"color": "#FFD700", "id": "Working With Data In R", "label": "Working With Data In R", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Working With Data In R\nCourse Pre-reqs: Introduction to R\nSubsequent Courses: None"}, {"color": "#FFD700", "id": "Advanced Regression Analysis With R ", "label": "Advanced Regression Analysis With R ", "level": 3, "shape": "dot", "size": 10, "title": "Course Name: Advanced Regression Analysis With R \nCourse Pre-reqs: Regression analysis with R\nSubsequent Courses: None"}, {"color": "#FFD700", "id": "Introduction to Version Control with Git and GitHub", "label": "Introduction to Version Control with Git and GitHub", "level": 2, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Version Control with Git and GitHub\nCourse Pre-reqs: Introduction to Unix\nSubsequent Courses: Intermediate Version Control"}, {"color": "#FFD700", "id": "Intermediate Version Control", "label": "Intermediate Version Control", "level": 3, "shape": "dot", "size": 10, "title": "Course Name: Intermediate Version Control\nCourse Pre-reqs: Introduction to Version Control with Git and GitHub\nSubsequent Courses: None"}, {"color": "#FFD700", "id": "Introduction to Unix", "label": "Introduction to Unix", "level": 1, "shape": "dot", "size": 10, "title": "Course Name: Introduction to Unix\nCourse Pre-reqs: None\nSubsequent Courses: Introduction to Version Control with Git and GitHub"}]);
286286
edges = new vis.DataSet([{"arrows": "to", "from": "Introduction to R", "to": "Regression analysis with R", "width": 1}, {"arrows": "to", "from": "Introduction to R", "to": "Working With Data In R", "width": 1}, {"arrows": "to", "from": "Regression analysis with R", "to": "Advanced Regression Analysis With R ", "width": 1}, {"arrows": "to", "from": "Introduction to Version Control with Git and GitHub", "to": "Intermediate Version Control", "width": 1}, {"arrows": "to", "from": "Introduction to Unix", "to": "Introduction to Version Control with Git and GitHub", "width": 1}]);
287287

288288
nodeColors = {};

_toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ parts:
4040
- file: programme_information/high_performance_computing
4141
sections:
4242
- file: programme_information/intro_to_hpc
43+
- file: programme_information/parallel_computing
4344
- file: programme_information/software_development
4445
sections:
4546
- file: programme_information/software_development_best_practices
@@ -214,6 +215,7 @@ parts:
214215
- file: individual_modules/introduction_to_hpc/modules
215216
- file: individual_modules/introduction_to_hpc/example_jobs
216217
- file: individual_modules/introduction_to_hpc/exploiting_slurm
218+
- file: individual_modules/section_landing_pages/parallel_computing
217219
- file: course_homepages/software_development
218220
sections:
219221
- file: individual_modules/section_landing_pages/software_development_best_practice

data/workshop_info.csv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ Intermediate Version Control,,,,
1111
Introduction to Unix,,,,
1212
Computational Thinking,,,,
1313
Software Development Best Practice,,,,
14-
Introduction to Julia,,,,
14+
Introduction to Julia,,,,
15+
Parallel Computing,,,,
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
### Instructional Material
3+
4+
The instructional material in this course is copyright © 2024 University of Exeter
5+
and is made available under the Creative Commons Attribution 4.0 International
6+
licence (https://creativecommons.org/licenses/by/4.0/). Instructional material
7+
consists of material that is contained within the "individual_modules/parallel_computing" directory, and images folders in
8+
this directory, with the exception of code snippets and example programs found
9+
in files within these folders. Such code snippets and example programs are
10+
considered software for the purposes of this licence.
11+
12+
13+
### Software
14+
15+
Except where otherwise noted, software provided in this repository is made
16+
available under the MIT licence (https://opensource.org/licenses/MIT).
17+
18+
Copyright © 2024 University of Exeter
19+
20+
Permission is hereby granted, free of charge, to any person obtaining a copy
21+
of this software and associated documentation files (the "Software"), to deal
22+
in the Software without restriction, including without limitation the rights
23+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
24+
copies of the Software, and to permit persons to whom the Software is
25+
furnished to do so, subject to the following conditions:
26+
27+
The above copyright notice and this permission notice shall be included in all
28+
copies or substantial portions of the Software.
29+
30+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
31+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
32+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
33+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
34+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
35+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
36+
SOFTWARE.
37+
38+
The software in this repository is adapted from software that is covered by the
39+
following copyright and permission notice:
40+
41+
Copyright © 2024 Software Carpentry
42+
43+
Permission is hereby granted, free of charge, to any person obtaining
44+
a copy of this software and associated documentation files (the
45+
"Software"), to deal in the Software without restriction, including
46+
without limitation the rights to use, copy, modify, merge, publish,
47+
distribute, sublicense, and/or sell copies of the Software, and to
48+
permit persons to whom the Software is furnished to do so, subject to
49+
the following conditions:
50+
51+
The above copyright notice and this permission notice shall be
52+
included in all copies or substantial portions of the Software.
53+
54+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
55+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
56+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
57+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
58+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
59+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
60+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Parallel Computing
2+
3+
**Please note that the content for this course is still in active development.**
4+
5+
## Overview
6+
7+
This course will provide an introduction to parallel programming. Participants will gain practical experience in writing parallel software, understanding how to decompose problems for efficient execution across multiple processes and threads.
8+
9+
## Course Objectives
10+
On completion of this series of workshops, participants will:
11+
- Be able to explain what is meant by distributed and shared-memory parallelism.
12+
- Know how to write software that can run across multiple processes using MPI.
13+
- Be able to write code that utilizes multithreading for parallel execution.
14+
- Be able to identify how a problem can be divided and parallelised effectively.
15+
- Gain hands-on experience writing and optimizing parallel code.
16+
17+
## Pre-requisite Knowledge
18+
This course is for participants who already have some programming experience with Python. If you are not familiar with Python, our Introduction to Python course, is available [here](introduction_to_python.md).

0 commit comments

Comments
 (0)