├── .gitignore
├── imgs
├── archer.png
├── EPCC_logo.png
├── UoE_logo.png
└── Readme.md
├── Activities
├── Sort
│ ├── imgs
│ │ ├── scores.png
│ │ ├── setup1.png
│ │ ├── setup2.png
│ │ ├── scores2.png
│ │ ├── a3_options.png
│ │ └── flower-stand.png
│ ├── pdf
│ │ ├── SortingLabels.pdf
│ │ └── sort-graph-paper.pdf
│ └── Readme.md
├── PostalSort
│ ├── imgs
│ │ ├── postal-kit.png
│ │ ├── bucket-sort.png
│ │ ├── post-in-use.png
│ │ ├── postoutline.png
│ │ ├── postalsortplan.png
│ │ └── postalsortallocation.png
│ ├── pdf
│ │ ├── Post_sorting_stamps_AveryL4736REV-25.pdf
│ │ └── Post_sorting_address_labels_AveryL7163.pdf
│ └── Readme.md
├── MessagePassingSort
│ ├── imgs
│ │ ├── BSF12.png
│ │ ├── MessagePassing1.png
│ │ ├── MessagePassing2.png
│ │ ├── MessagePassing3.png
│ │ ├── MessagePassing4.png
│ │ ├── MessagePassing5.png
│ │ ├── MessagePassing6.png
│ │ └── MessagePassing7.png
│ ├── svg
│ │ └── Readme.md
│ └── Readme.md
├── SuperComputingChallenge
│ ├── imgs
│ │ └── SuperComputingApp.png
│ └── Readme.md
├── Reference
│ ├── Readme.md
│ ├── Introduction
│ │ ├── Readme.md
│ │ └── Computers
│ │ │ ├── theme
│ │ │ └── epcc.css
│ │ │ └── slides.md
│ ├── weearchie
│ │ ├── Readme.md
│ │ ├── WeeArchletTech.md
│ │ ├── WeeArchieGreenTech.md
│ │ ├── WeeArchieBlueTech.md
│ │ ├── WeeArchletKeyPoints.md
│ │ └── WeeArchieKeyPoints.md
│ └── AudienceProfiles
│ │ └── AudienceProfiles.md
├── Readme.md
├── ParallelWordCount
│ └── Readme.md
└── ParallelSums
│ └── Readme.md
├── Readme.md
├── ConvertMdToPdf.md
└── LICENCE.md
/.gitignore:
--------------------------------------------------------------------------------
1 | # Do not want these type of files in the repository
2 | *~
3 | .DS_Store/
4 |
--------------------------------------------------------------------------------
/imgs/archer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/imgs/archer.png
--------------------------------------------------------------------------------
/imgs/EPCC_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/imgs/EPCC_logo.png
--------------------------------------------------------------------------------
/imgs/UoE_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/imgs/UoE_logo.png
--------------------------------------------------------------------------------
/Activities/Sort/imgs/scores.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/Sort/imgs/scores.png
--------------------------------------------------------------------------------
/Activities/Sort/imgs/setup1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/Sort/imgs/setup1.png
--------------------------------------------------------------------------------
/Activities/Sort/imgs/setup2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/Sort/imgs/setup2.png
--------------------------------------------------------------------------------
/Activities/Sort/imgs/scores2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/Sort/imgs/scores2.png
--------------------------------------------------------------------------------
/Activities/Sort/imgs/a3_options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/Sort/imgs/a3_options.png
--------------------------------------------------------------------------------
/Activities/Sort/imgs/flower-stand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/Sort/imgs/flower-stand.png
--------------------------------------------------------------------------------
/Activities/Sort/pdf/SortingLabels.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/Sort/pdf/SortingLabels.pdf
--------------------------------------------------------------------------------
/Activities/PostalSort/imgs/postal-kit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/PostalSort/imgs/postal-kit.png
--------------------------------------------------------------------------------
/Activities/Sort/pdf/sort-graph-paper.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/Sort/pdf/sort-graph-paper.pdf
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/imgs/BSF12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/MessagePassingSort/imgs/BSF12.png
--------------------------------------------------------------------------------
/Activities/PostalSort/imgs/bucket-sort.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/PostalSort/imgs/bucket-sort.png
--------------------------------------------------------------------------------
/Activities/PostalSort/imgs/post-in-use.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/PostalSort/imgs/post-in-use.png
--------------------------------------------------------------------------------
/Activities/PostalSort/imgs/postoutline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/PostalSort/imgs/postoutline.png
--------------------------------------------------------------------------------
/imgs/Readme.md:
--------------------------------------------------------------------------------
1 | # Institutional logo
2 |
3 | Permission to re-use these logos should be sought from
4 | the appropriate institution.
5 |
6 |
--------------------------------------------------------------------------------
/Activities/PostalSort/imgs/postalsortplan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/PostalSort/imgs/postalsortplan.png
--------------------------------------------------------------------------------
/Activities/PostalSort/imgs/postalsortallocation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/PostalSort/imgs/postalsortallocation.png
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/imgs/MessagePassing1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/MessagePassingSort/imgs/MessagePassing1.png
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/imgs/MessagePassing2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/MessagePassingSort/imgs/MessagePassing2.png
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/imgs/MessagePassing3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/MessagePassingSort/imgs/MessagePassing3.png
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/imgs/MessagePassing4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/MessagePassingSort/imgs/MessagePassing4.png
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/imgs/MessagePassing5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/MessagePassingSort/imgs/MessagePassing5.png
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/imgs/MessagePassing6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/MessagePassingSort/imgs/MessagePassing6.png
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/imgs/MessagePassing7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/MessagePassingSort/imgs/MessagePassing7.png
--------------------------------------------------------------------------------
/Activities/SuperComputingChallenge/imgs/SuperComputingApp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/SuperComputingChallenge/imgs/SuperComputingApp.png
--------------------------------------------------------------------------------
/Activities/PostalSort/pdf/Post_sorting_stamps_AveryL4736REV-25.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/PostalSort/pdf/Post_sorting_stamps_AveryL4736REV-25.pdf
--------------------------------------------------------------------------------
/Activities/PostalSort/pdf/Post_sorting_address_labels_AveryL7163.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/Activities/master/Activities/PostalSort/pdf/Post_sorting_address_labels_AveryL7163.pdf
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/svg/Readme.md:
--------------------------------------------------------------------------------
1 | # Editable version of diagrams used
2 |
3 | These were images were created using [affinity designer](https://affinity.serif.com/en-gb/)
4 | on a mac but they can be edited using [inkscape](https://inkscape.org/en/) and probably other
5 | svg editing packages.
6 |
7 |
--------------------------------------------------------------------------------
/Activities/Reference/Readme.md:
--------------------------------------------------------------------------------
1 | # Reference material
2 |
3 | This is reference material that can be used for outreach events:
4 |
5 | * `Audience Profiles` - gives an overview of the different types of audience that we see turning up to outreach events.
6 | * `Wee Archie Information` - technical data on Wee Archie
7 | * `Introduction` - basic presentations and background to frame activities if required
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
17 |
18 | This work is licensed under a
19 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
20 | © Copyright EPCC, The University of Edinburgh 2017.
21 |
--------------------------------------------------------------------------------
/Activities/Reference/Introduction/Readme.md:
--------------------------------------------------------------------------------
1 | # Introduction
2 |
3 | Each directory covers a topic which can be used to frame the activities in the context of computers and high performance computing.
4 |
5 | The current topics covered are:
6 | * What is a Computer and a Supercomputer?
7 | * Simulations
8 |
9 |
10 | If you go on to use any of these we would love to hear about it - drop us an
11 | [email](mailto:m.antonioletti@epcc.ed.ac.uk) with any feedback. If you would like to contribute then please fork the
12 | repository and issue a pull request with your contributions.
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
22 |
23 | This work is licensed under a
24 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
25 | © Copyright EPCC, The University of Edinburgh 2017.
26 |
--------------------------------------------------------------------------------
/Activities/Readme.md:
--------------------------------------------------------------------------------
1 | # Activities
2 |
3 | Each directory contains a description and the materials required to run each activity. We have:
4 |
5 | * [Sort](Sort/Readme.md) - an embarrassingly parallel demonstration of the benefits of parallelism.
6 | * [ParallelSums](ParallelSums/Readme.md) - calculating the sum of a list of numbers using a master-slave paradigm and a peerless one.
7 | * [MessagePassingSort](MessagePassingSort/Readme.md) - sorting a distributed list of numbers. This requires some explanation
8 | so not ideally suited to a high throughput environment.
9 |
10 | ### In progress
11 |
12 | * [ParallelWordCount](ParallelWordCount/Readme.md) - a parallel word count activity modelled on MapReduce.
13 | * [PostalSort](PostalSort/Readme.md) - another embarrassingly parallel sort but slightly more complicated than the `Sort` activity.
14 | * `Reference` - reference materials providing background that may be used at an outreach event.
15 | * `SuperComputingChallenge` - a webapp that can be used at events.
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
25 |
26 | This work is licensed under a
27 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
28 | © Copyright EPCC, The University of Edinburgh 2017.
29 |
30 |
--------------------------------------------------------------------------------
/Readme.md:
--------------------------------------------------------------------------------
1 | # Outreach
2 |
3 | This repository contains a description of EPCC/ARCHER outreach
4 | activities under the [Activities](./Activities) directory. Various practical activities are described that can be
5 | used to demonstrate the benefits of parallel/supercomputing to the
6 | general public and/or young people.
7 |
8 | If you go on to use any of these we would love to hear about it -
9 | drop us an [email](mailto:m.antonioletti@epcc.ed.ac.uk) with any
10 | feedback. If you would like to contribute then please fork the
11 | repository and issue a pull request with your contributions.
12 |
13 | ## Other EPCC Outreach repositories
14 |
15 | * [Wee Archlet](https://github.com/EPCCed/wee_archlet) - instructions on building a Raspberry Pi based cluster.
16 | * [Wee Archie](https://github.com/EPCCed/wee_archie) - applications that we use to run on Raspberry Pi cluster (Wee Archie).
17 | * [Schools Material](https://github.com/EPCCed/SchoolsIntroMaterial) - set of reveal based slides used in primary schools.
18 | * [Dino racer](https://github.com/EPCCed/outreach) - another application used on our rapberry pi cluster - racing dinosaurs.
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
28 |
29 | This work is licensed under a
30 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
31 | © Copyright EPCC, The University of Edinburgh 2017.
32 |
--------------------------------------------------------------------------------
/Activities/Reference/weearchie/Readme.md:
--------------------------------------------------------------------------------
1 | # Information about Wee Archie and Wee Archlet
2 |
3 | Wee Archie is a model super computer we can take to events consisting of
4 | networked Raspberry Pis. There are two models - a blue and green. The
5 | colour refers to the colour of the LEDs each system employs - blue is a
6 | slightly more up to date system. The Archie name is derived from the
7 | ARCHER super computing service run in the UK, Wee (for small) reflects
8 | the Scottish heritage. Wee Archlet is a cut down version with only a
9 | few Raspberry Pis networked together. We have provided instructions
10 | on [how to build your own Wee Archlet](https://epcced.github.io/wee_archlet)
11 | elsewhere.
12 |
13 | * [WeeArchieBlueTech.md](WeeArchieBlueTech.md) - build specifications for Wee Archie blue.
14 | * [WeeArchieGreenTech.md](WeeArchieGreenTech.md) - build specification for Wee Archie green.
15 | * [WeeArchieKeyPoints.md](WeeArchieKeyPoints.md) - key points that can be made about each system.
16 | * [WeeArchletKeyPoints.md](WeeArchletKeyPoints.md) - key points that be made about Wee Archlet.
17 | * [WeeArchletTech.md](WeeArchletTech.md) - build specifications for Wee Archlet.
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
27 |
28 | This work is licensed under a
29 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
30 | © Copyright EPCC, The University of Edinburgh 2018.
31 |
32 |
--------------------------------------------------------------------------------
/ConvertMdToPdf.md:
--------------------------------------------------------------------------------
1 | # Converting markdown to pdf
2 |
3 | These are some notes on how to conver the markdown sources to pdf in this
4 | repository based on this
5 | [gist](https://gist.github.com/justincbagley/ec0a6334cc86e854715e459349ab1446).
6 | I think `grip` seems to give the best output. These have only been used these on a mac. Please feel free to update for other platforms.
7 |
8 | ## pandoc
9 |
10 | ```
11 | pandoc -V geometry:margin=2cm Readme.md -s -o sort3.pdf
12 | ```
13 |
14 | This produces rather plain looking output.
15 |
16 | ## grip
17 |
18 | Need to install this on to your system if it's not already there.
19 |
20 | ```
21 | pip install grip
22 | ```
23 |
24 | To render a markdown page:
25 |
26 | ```
27 | grip Readme.md
28 | ```
29 |
30 | This renders the page in a browser window under a local server:
31 | http://localhost:6419/ which can then be printed out a pdf file.
32 | This produces the most similar output to the rendered output.
33 |
34 | The following is better as it puts the output directly into an html
35 | page:
36 |
37 |
38 | ```
39 | grip Readme.md --export output.html
40 |
41 | ```
42 |
43 | This can then be edited and exported as a pdf from a browser.
44 |
45 | ## Markdown-pdf
46 |
47 | Install the app
48 |
49 | ```
50 | npm install -g markdown-pdf
51 | ```
52 |
53 | which can be used to produce a pdf from markdown:
54 |
55 | ```
56 | markdown-pdf -f "A4" -o outputfilename.pdf Readme.md
57 | ```
58 |
59 | However it produces a fairly plain output.
60 |
61 | ## Other alternatives
62 |
63 | * For mac users shift-Command-R on Safari will open the markdown in Reader. One can print from there.
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
73 |
74 | This work is licensed under a
75 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
76 | © Copyright EPCC, The University of Edinburgh 2018.
77 |
--------------------------------------------------------------------------------
/Activities/ParallelWordCount/Readme.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | |
7 |
8 |
9 | |
10 |
11 |
12 | |
13 |
14 |
15 |
16 |
17 | # Parallel Word Count
18 |
19 | ## Objectives
20 |
21 | * Introduce Big Data
22 | * Employ a version of MapReduce of counting words from documents in parallel
23 | * Discuss the pros-cons
24 | * Discuss Applications of the MapReduce Approach
25 |
26 | ## Learning objectives
27 |
28 | * Benefits in doing a task in parallel
29 | * Awareness of the overhead that parallelism introduces
30 | * Different Applications of a parallel model and what has to be done
31 |
32 | ## Equipment
33 |
34 | * Set of Documents - Short on Cards - Each about 20 words - common words existing in all of them
35 | * Set of Map Output Cards (laminated) - Space for Word & 1
36 | * Trays for Map Output Cards
37 | * Set of Reduction Output Cards (laminated) - Space for Word & Total
38 | * Set of Answers for Given Card Sets
39 |
40 | ## Method
41 |
42 | ### Problem Introduction
43 |
44 | ### MapReduce - What is it?
45 |
46 | ### Mappers
47 |
48 | ### Reducers
49 |
50 | ## Extensions
51 |
52 | ## Applications
53 |
54 | ## Want to know more?
55 |
56 | If you want to know more about EPCC Outreach activities visit:
57 |
58 | * https://www.epcc.ed.ac.uk/discover-and-learn
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
70 |
71 | This work is licensed under a
72 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
73 | © Copyright EPCC, The University of Edinburgh 2017.
74 |
75 |
--------------------------------------------------------------------------------
/Activities/Reference/weearchie/WeeArchletTech.md:
--------------------------------------------------------------------------------
1 | # Wee Archlet
2 |
3 | Wee Archlet is the home-build cluster setup developed for demonstration
4 | purposes using the Raspberry Pi series of single board computers.
5 |
6 | Instructions on equipment and setup are available at
7 | (https://epcced.github.io/wee_archlet/).
8 |
9 | ## Wee Archlet Technical Specification
10 |
11 | ### Total Numbers
12 |
13 | - Number of Processors/Cores: 5/20
14 |
15 | - Core Speed: 1GHZ
16 |
17 | - RAM: 5 GB (1GB per board)
18 |
19 | - Storage: 80 GB (16 GB per board)
20 |
21 | - Operating System: Raspbian “Jessie"
22 |
23 | ### Components
24 |
25 | Wee Archlet is housed in plastic 'Lego-style' casings.
26 |
27 | The power and computation elements are:
28 |
29 | - 5 Raspberry Pi 3 Model B
30 |
31 | - 1 Netgear GS108 Switch
32 |
33 |
34 | ### Raspberry Pi 3 Model B Specification
35 |
36 | - Quad Core 1.2GHz Broadcom BCM2837 64bit CPU
37 |
38 | - 1GB RAM
39 |
40 | - BCM43438 wireless LAN and Bluetooth Low Energy (BLE) on board
41 |
42 | - 40-pin extended GPIO
43 |
44 | - 4 USB 2 ports
45 |
46 | - Micro SD (16GB Cards in use)
47 |
48 | - Ethernet Port
49 |
50 | The Raspberry Pi 3 units in Wee Archlet has been under clocked to
51 | 1GHz after testing against applications including using OpenBLAS
52 | proved this to give stable performance without power or heating
53 | issues in the cases. Each unit has a 16GB MicroSD card with the
54 | operating system installed.
55 |
56 | ### Netgear GS108 Switch
57 |
58 | - Speed: 10/100/1000Mbps Ethernet
59 |
60 | - 8 Ports with Auto-uplink negotiation
61 |
62 | - Max Power Consumption: 4.9W
63 |
64 | The switches used in Wee Archlet are off-the-shelf Netgear units. The
65 | Raspberry Pi network communications are well within the tolerances of the
66 | switches and the power consumption is low. The switch has a 5V power
67 | supply.
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
77 |
78 | This work is licensed under a
79 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
80 | © Copyright EPCC, The University of Edinburgh 2017.
81 |
82 |
--------------------------------------------------------------------------------
/Activities/Reference/AudienceProfiles/AudienceProfiles.md:
--------------------------------------------------------------------------------
1 | Levels
2 | ______
3 |
4 | Pre - Mid Primary School
5 |
6 | - This age group will like recognise technology in some form but may not have thought about what it can do beyond their own interactions with it.
7 |
8 | - Some may have heard of a Raspberry Pi.
9 |
10 | - Tend to give immediate feedback and will ask all manner of questions.
11 |
12 |
13 |
14 | Mid Primary to Mid Secondary
15 |
16 | - This age group will have used computers at school and in other arenas. They will have begun to realise the breadth of technology available and possibly started to consider ramifications.
17 |
18 | - This age group will have had opportunities to explore basic coding and may have used Raspberry Pis
19 |
20 | - Likely age group for Code Club and Young Engineers
21 |
22 | - Starting to be reluctant to give feedback and tend to ask more targeted questions.
23 |
24 |
25 |
26 | Mid Secondary to Young Adult
27 |
28 | - This age group has a range of avenues, though likely all familiar with elements of modern technology, notably things like tablets and smartphones in a more social everyday setting.
29 |
30 | - Will consider the social and societal issues surrounding computers. Privacy and ethics may come up in the conversation.
31 |
32 | - A greater range of knowledge on science, engineering and applications on computers.
33 |
34 | - Will be considering careers, college, university at this point.
35 |
36 | - Can be hard to read.
37 |
38 | - Questions tend to be focussed on personal interest of the audience member.
39 |
40 |
41 |
42 | Adult
43 |
44 | - This group has possibly the greatest variability, from the really technological adept to the untapped audience who disengaged with science and technology.
45 |
46 | - Will varying from wanting to know the technical details to wanting to understand the general ramifications and impacts of the technology.
47 |
48 | - Are very easy to turn off especially if not science or technology inclined so need to be responsive to their needs.
49 |
50 | - Questions range across the spectrum.
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
60 |
61 | This work is licensed under a
62 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
63 | © Copyright EPCC, The University of Edinburgh 2017.
64 |
--------------------------------------------------------------------------------
/Activities/SuperComputingChallenge/Readme.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | |
7 |
8 |
9 | |
10 |
11 |
12 | |
13 |
14 |
15 |
16 |
17 | # Supercomputing Challenge
18 |
19 | ## Background
20 |
21 | EPCC has created a web
22 | application,
23 | [archer challenge](http://supercomputing.epcc.ed.ac.uk/challenge/),
24 | that allows user to simulate the running of a computer centre. A user
25 | starts with an initial budget that they can use to purchase a computer
26 | system for their centre. Income is then generated by running
27 | jobs. This cash allows the player to buy new nodes and or upgrade the
28 | hardware and thus is able to run more and bigger jobs which in turn
29 | generates more income. Some budget must also be maintained to allow
30 | for unforseen events to be addressed such as repairing node failures
31 | which require cash to repair.
32 |
33 | 
34 |
35 | ## Objectives
36 |
37 | * Keep your job as long as possible.
38 | * Be a national HPC centre
39 | * Upgrade and/or buy more hardware to run more jobs or jobs that have
40 | larger requirements.
41 | * Process more FLOPS
42 | * The full game balances money with the machine more fully. In terms of you have power bills & if you go into debt the lights go out and you loose. You can borrow money & the interest rate changes too. Also the full game explores aspects such as cooling (lower running cost) and interconnect (increases PE.) The bank is also an aspect of this, where you can see transactions and their impact on your balance.
43 | * The festival version is much sharper and shorter, just focusing in on the money you make from jobs and you only "loose" when the time runs out. I.e. it is how many FLOPs you can get in 90 seconds and that's it. Money here drives the machine you can buy which = more FLOPS. Whereas in full game this also ends the game so adds an extra dimension.
44 |
45 | ## Learning objectives
46 |
47 | * Become aware that better hardware allows you to tackle existing jobs
48 | faster or bigger jobs.
49 | * It costs money to run these machines and that is an important aspect to balance
50 | * We use these for a variety of scientific jobs
51 | * Not just the power of the hardware (although that is important) but also aspects such as cooling & interconnect.
52 |
53 | ## Equipment
54 |
55 | * A networked connection is required to enable the supercomputing
56 | application to be run. A desktop/laptop with a web browser.
57 |
58 | ## Method
59 |
60 | The game initially requires a little bit of explanation but once
61 | the basics have been gone over the game is relatively self evident. More
62 | nodes allows the throughput of jobs to increase, more powerful hardware
63 | allows bigger jobs to be run that generate more income. A leaderboard
64 | allows individuals to add their name to the top scores. The walk-through on the festival mode is much better, but full interactive help is provided and an advisor is present to assist.
65 |
66 | ## Discussion points
67 |
68 | * What is the best strategy?
69 | * What jobs interest you the most?
70 | * What sort of hardware is most suited?
71 |
72 | ## Want to know more?
73 |
74 | If you want to know more about EPCC Outreach activities visit:
75 |
76 | * https://www.epcc.ed.ac.uk/discover-and-learn
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
87 |
88 | This work is licensed under a
89 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
90 | © Copyright EPCC, The University of Edinburgh 2017.
91 |
92 |
--------------------------------------------------------------------------------
/Activities/Reference/weearchie/WeeArchieGreenTech.md:
--------------------------------------------------------------------------------
1 | # Wee Archie Green
2 |
3 | Wee Archie Green was the first unit developed for demonstration purposes using
4 | the Raspberry Pi series of single board computers. The green refers to the colour
5 | of the LEDs used.
6 |
7 | ## Wee Archie Green Technical Specification
8 |
9 | ### Overview Numbers
10 |
11 | - Number of Processors/Cores: 18/72.
12 |
13 | - Core Speed: 900MHZ.
14 |
15 | - Total RAM: 18 GB (1GB per board).
16 |
17 | - Storage: 144 GB (8 GB per board).
18 |
19 | - Operating System: [Raspbian “Wheezy"](https://sourceforge.net/projects/raspbian-wheezy-pi/).
20 |
21 |
22 | ### Components
23 |
24 | Wee Archie Green is housed in an extruded aluminium frame with polycarbonate
25 | facings and mounts.
26 |
27 | The power and computation elements are:
28 |
29 | - 18 Raspberry Pi 2 Model B
30 |
31 | - 3 Netgear GS108 Switch
32 |
33 | - 18 8x8 LED Matrices
34 |
35 | - 2 5V 10A PSU
36 |
37 | ### Raspberry Pi 3 Model B Specification
38 |
39 | - 900MHz quad-core ARM Cortex-A7 CPU
40 |
41 | - 1GB RAM
42 |
43 | - 40-pin extended GPIO
44 |
45 | - 4 USB 2 ports
46 |
47 | - Micro SD (8GB Cards in use)
48 |
49 | - Ethernet Port
50 |
51 | Each unit has an 8GB MicroSD card with the operating system installed.
52 |
53 | ### Netgear GS108 Switch
54 |
55 | - Speed: 10/100/1000Mbps Ethernet
56 |
57 | - 8 Ports with Auto-uplink negotiation
58 |
59 | - Max Power Consumption: 4.9W
60 |
61 | The switches used in Wee Archie Green are off-the-shelf Netgear units. The
62 | Raspberry Pi network communications are well within the tolerances of the
63 | switches and the power consumption is low. Each switch has its own 5V power
64 | supply.
65 |
66 | ### 8x8 LED Matrix
67 |
68 | - I2C Communications
69 |
70 | - 64 Element Dot Matrix Display
71 |
72 | - Green colour
73 |
74 |
75 | The LED Matrices are used to give information on the status of a Raspberry Pi,
76 | including core usage, network traffic and temperature.
77 |
78 | ## Wee Archie Green Performance
79 |
80 | The performance of Wee Archie Green was assessed using the Linpack benchmark
81 | (). For more detailed information on the
82 | performance of Wee Archie Green, there is a blog article available on the EPCC
83 | blog ().
84 |
85 | For a single node (Raspberry Pi) using the standard ATLAS BLAS implementation on
86 | Raspbian, the peak performance attained was 1.03 GFLOPS. As detailed in the
87 | blog linked above, this caused some queries to be raised and OpenBLAS was
88 | complied for the Raspberry Pi 2. The performance using OpenBLAS in Linpack
89 | caused a large increased to 1.57 GFLOPs.
90 |
91 | For Wee Archie Green as a whole, the performance was assessed on 16 compute nodes
92 | (16 of the Raspberry Pis with the remaining two managing the network and file
93 | system). Using the ATLAS implementation the peak performance was 9.1 GFLOPs,
94 | again causing concern. Then rerunning the benchmark using OpenBLAS this
95 | increased to 12.79 GFLOPs.
96 |
97 | These scores are not particularly impressive, but the focus of the machine is to
98 | demonstrate how parallelism and supercomputers work not replicate the
99 | performance. Though in the first ever top500 list, Wee Archie Green would have
100 | been number 21. And it consumes a lot less power and takes up less space.
101 |
102 | | Number of Nodes | Linpack (ATLAS) | Linpack (OpenBLAS) |
103 | |-----------------|-----------------|--------------------|
104 | | 1 | 1.03 GFLOPs | 1.67 GFLOPs |
105 | | 16 | 9.1 GFLOPs | 12.79 GFLOPs |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
116 |
117 | This work is licensed under a
118 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
119 | © Copyright EPCC, The University of Edinburgh 2017.
120 |
--------------------------------------------------------------------------------
/Activities/Reference/weearchie/WeeArchieBlueTech.md:
--------------------------------------------------------------------------------
1 | # Wee Archie Blue
2 |
3 | Wee Archie Blue is the second unit developed for demonstration purposes using
4 | the Raspberry Pi series of single board computers. The blue name comes from the
5 | use of the blue LEDs.
6 |
7 | ## Wee Archie Blue Technical Specification:
8 |
9 | ### Overview Numbers
10 |
11 | - Number of Processors/Cores: 18/72.
12 |
13 | - Core Speed: 1GHZ.
14 |
15 | - RAM: 18 GB (1GB per board).
16 |
17 | - Storage: 408 GB (16 GB per board plus 120GB network shared).
18 |
19 | - Operating System: Raspbian “Jessie".
20 |
21 |
22 | ### Components
23 |
24 | Wee Archie Blue is housed in an extruded aluminium frame with polycarbonate
25 | facings and mounts.
26 |
27 | The power and computation elements are:
28 |
29 | - 18 Raspberry Pi 3 Model B
30 |
31 | - 3 Netgear GS108 Switch
32 |
33 | - 120 GB Sandisk Portable SSD
34 |
35 | - 18 8x8 LED Matrices
36 |
37 | - 2 5V 10A PSU
38 |
39 | ### Raspberry Pi 3 Model B Specification
40 |
41 | - Quad Core 1.2GHz Broadcom BCM2837 64bit CPU
42 |
43 | - 1GB RAM
44 |
45 | - BCM43438 wireless LAN and Bluetooth Low Energy (BLE) on board
46 |
47 | - 40-pin extended GPIO
48 |
49 | - 4 USB 2 ports
50 |
51 | - Micro SD (16GB Cards in use)
52 |
53 | - Ethernet Port
54 |
55 | The Raspberry Pi 3 units in Wee Archie Blue has been under clocked to 1GHz after
56 | testing against applications including using OpenBLAS proved this to give stable
57 | performance without power or heating issues in the cases. Each unit has a 16GB
58 | MicroSD card with the operating system installed.
59 |
60 | ### Netgear GS108 Switch
61 |
62 | - Speed: 10/100/1000Mbps Ethernet
63 |
64 | - 8 Ports with Auto-uplink negotiation
65 |
66 | - Max Power Consumption: 4.9W
67 |
68 | The switches used in Wee Archie Blue are off-the-shelf Netgear units. The
69 | Raspberry Pi network communications are well within the tolerances of the
70 | switches and the power consumption is low. Each switch has its own 5V power
71 | supply.
72 |
73 | ### 120 GB Sandisk Portable SSD
74 |
75 | - 120 GB Capacity
76 |
77 | - USB3.0 Capable
78 |
79 | - Solid State
80 |
81 | - Low Operating Temperature
82 |
83 | - Silent Operation
84 |
85 | The Sandisk SSD is a low power, portable drive used to hold the shared network
86 | files for Wee Archie Blue.
87 |
88 | ### 8x8 LED Matrix
89 |
90 | - I2C Communications
91 |
92 | - 64 Element Dot Matrix Display
93 |
94 | - Blue colour
95 |
96 | The LED Matrices are used to give information on the status of a Raspberry Pi,
97 | including core usage, network traffic and temperature.
98 |
99 | ## Wee Archie Blue Performance
100 |
101 | The performance of Wee Archie Blue was assessed using the Linpack benchmark
102 | (). For more detailed information on the
103 | performance of Wee Archie Blue, there is a blog article available on the EPCC
104 | blog ().
105 |
106 | For a single node (Raspberry Pi) using the standard ATLAS BLAS implementation on
107 | Raspbian, the peak performance attained was 0.63 GFLOPS. As detailed in the
108 | blog linked above, this caused some queries to be raised and OpenBLAS was
109 | complied for the Raspberry Pi 3. The performance using OpenBLAS in Linpack
110 | caused a large increased to 3.58GFLOPs.
111 |
112 | For Wee Archie Blue as a whole, the performance was assessed on 16 compute nodes
113 | (16 of the Raspberry Pis with the remaining two managing the network and file
114 | system). Using the ATLAS implementation the peak performance was 7.1 GFLOPs,
115 | again causing concern. Then rerunning the benchmark using OpenBLAS this
116 | increased to 25.1 GFLOPs.
117 |
118 | These scores are not particularly impressive, but the focus of the machine is to
119 | demonstrate how parallelism and supercomputers work not replicate the
120 | performance. Though in the first ever top500 list, Wee Archie Blue would have
121 | been number 5. And it consumes a lot less power and takes up less space.
122 |
123 | | Number of Nodes | Linpack (ATLAS) | Linpack (OpenBLAS) |
124 | |-----------------|-----------------|--------------------|
125 | | 1 | 0.63 GFLOPs | 3.58 GFLOPs |
126 | | 16 | 7.1 GFLOPs | 25.1 GFLOPs |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
136 |
137 | This work is licensed under a
138 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
139 | © Copyright EPCC, The University of Edinburgh 2017.
140 |
--------------------------------------------------------------------------------
/Activities/Reference/weearchie/WeeArchletKeyPoints.md:
--------------------------------------------------------------------------------
1 | # Introduction Routes
2 |
3 | Introducing Wee Archlet depends on who you are talking to (often
4 | this will follow from Wee Archie and about doing something similar
5 | themselves), what level and the interest shown. This tries to
6 | identify the main groups of individuals and give a starting point.
7 |
8 | General Progression:
9 |
10 | - Ask them what a computer is, what they use it for and what else it could be used for
11 |
12 | - Ask them what a supercomputer is - try to get them to arrive at something with prompts
13 |
14 | - Talk about Wee Archlet, get them to use it
15 |
16 | - Show them the parts, talk about the ease of putting it together, how it can be scaled down and up, that there are instructions available
17 |
18 | - Ask why we need computers to support science, what benefits it can give us, and fill in blanks/ask questions as you go along
19 |
20 | - Try to get them to come up with uses of a supercomputer
21 |
22 | ## Key Points
23 |
24 | It is important to place emphasis that Wee Archlet are a small
25 | 'model' of a supercomputer - it operates in the same way a supercomputer
26 | would but lacks the network bandwidth and performance of a
27 | supercomputer. Supercomputers exploit parallelism to achieve high
28 | performances.
29 |
30 | Highlight the analogous parts of Wee Archlet to the parts of a
31 | supercomputer.
32 |
33 | - `Raspberry Pi` - equivalent to a compute element of a supercomputer - see technical specification for model.
34 |
35 | - `4 Raspberry Pis workers` - these carry out the calculations and functions of a parallel program
36 |
37 | - 1 Raspberry Pi is the network runner, file server and job manager - this hosts all the program and data files for the parallel programs, accepts jobs on the cluster and manages the network.
38 |
39 | **Note**: *diagram here might be useful. Not sure if this is too low level because you are getting into a complicated space of I/O, parallel file systems, etc.*
40 |
41 | - `Network Switch` - equivalent to the interconnects
42 |
43 | - Allows the Raspberry Pis to communicate and the client computers to connect to the system
44 |
45 | - Note that supercomputers run interconnects that can be far faster than the commodity one used in Wee Archlet
46 |
47 | - `Power Unit` - the USB power supply and network switch power supply sitting along side the elements
48 |
49 | - Note that Wee Archlet draws less power than an bright non-LED lightbulb
50 |
51 | - `Cooling System` - Wee Archlet does not have one
52 |
53 | - Raspberry Pis do not require cooling at the levels of a real supercomputer
54 |
55 | - Introduce why cooling is needed
56 |
57 | ### Purpose - why do we need supercomputers?
58 |
59 | Solve more complex problems
60 |
61 | - solve existing problems faster, tomorrows weather today not tomorrow
62 |
63 | - solve larger problems, higher resolution weather forecasts
64 |
65 | - dangerous problems
66 |
67 | - problems which otherwise could not be explored, how global warming impacts weather systems
68 |
69 | ### Why use parallelism?
70 |
71 | Splitting up large problems into smaller parts, give examples of
72 | tangible things and then move to more abstract computational examples.
73 | Focus on the idea of work being spread across the different elements.
74 |
75 | ### Why parallel
76 |
77 | Talk about communications - highlight in most parallel situations
78 | data needs to be shared and updated as the computation takes place.
79 | Talk about the differences in speed between communication and
80 | computation. Highlight that speed-up is not perfect, two CPUs don’t
81 | do it twice as fast as one but are faster and scale it up.
82 |
83 | Bottlenecks - talk about how some parts of the code may cause the
84 | rest to have to stop/slow down while it operates - particularly
85 | talk about serial parts in relation to parallel parts.
86 |
87 | Deadlocks - talk about the importance on ensuring that data or
88 | processes that depend on each other are kept in synch - so for
89 | example you don’t end up with a case of one wanting data the other
90 | has but it is waiting on the first one to finish something else.
91 |
92 | ## Supplemental Points
93 |
94 | Computer - ensure that the audience knows what a computer is and that they understand that it is a tool to enable us to do more.
95 |
96 | Science on Computers - why
97 |
98 | - Speed
99 |
100 | - Accuracy
101 |
102 | - Danger
103 |
104 | - Cost
105 |
106 | Talk about how modern science is very difficult to deal with/research
107 | in without the support provided by computers and software available
108 | to us.
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
118 |
119 | This work is licensed under a
120 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
121 | © Copyright EPCC, The University of Edinburgh 2017.
122 |
123 |
--------------------------------------------------------------------------------
/Activities/Reference/weearchie/WeeArchieKeyPoints.md:
--------------------------------------------------------------------------------
1 | ## Introduction Routes
2 |
3 | Introducing Wee Archie depends on who you are talking to, what level
4 | and the interest shown. This tries to identify the main groups of
5 | individuals and give a starting point.
6 |
7 | General Progression:
8 |
9 | - Ask them what a computer is, what they use it for and what else it could be used for
10 |
11 | - Ask them what a supercomputer is - try to get them to arrive at something with prompts
12 |
13 | - Talk about Wee Archie and get them to start using it
14 |
15 | - Ask why we need computers to support science, what benefits it can give us, and fill in blanks/ask questions as you go along
16 |
17 | - Try to get them to come up with uses of a supercomputer
18 |
19 | ## Key Points
20 |
21 | It is important to place emphasis that Wee Archie is a `model`of a
22 | supercomputer - it operates in the same way a supercomputer would
23 | but lacks the network bandwidth and performance of a supercomputer.
24 | Supercomputers exploit parallelism to achieve high performances.
25 |
26 | Highlight the analogous parts of Wee Archie to the parts of a
27 | supercomputer.
28 |
29 | **Note**: *I think you want the actual model being used, characteristics of the Raspberry Pi: number of cores, peak performance, etc and the bandwidth, and the storage in case a knowledgable person asks those sort of questions*.
30 |
31 | - `Raspberry Pi` - equivalent to the node/blade of a supercomputer
32 |
33 | **Note**: *I do not think you can compare to a blade/node (multiple processors) but to a processor itself*.
34 |
35 | - `16 Raspberry Pis workers` - these carry out the calculations and functions of a parallel program
36 |
37 | - 1 Raspberry Pi is the network file server - this hosts all the program and data files for the parallel programs
38 |
39 | - 1 Raspberry Pi is the network runner and job manager - this accepts jobs on the cluster and manages the network.
40 |
41 | **Note**: *diagram here might be useful. Not sure if this is too low level because you are getting into a complicated space of I/O, parallel file systems, etc.*
42 |
43 | - `Network Switches` - equivalent to the interconnects
44 |
45 | - Allows the Raspberry Pis to communicate and the client computers to connect to the system
46 |
47 | - Note that supercomputers run interconnects that can be far faster than the commodity ones used in Wee Archie
48 |
49 | - `Power Unit` - the two main supplies and network supplies in the bottom of the unit
50 |
51 | - The Raspberry Pis are split into two nine member groups each supplied by a single power supply
52 |
53 | - Each switch has its own supply.
54 |
55 | - Note that Wee Archie draws less power than a toaster/kettle/couple of light bulbs (not LED ones)
56 |
57 | - `Cooling System` - Wee Archie does not have one
58 |
59 | - Raspberry Pis do not require cooling at the levels of a real supercomputer
60 |
61 | - Introduce why cooling is needed
62 |
63 | ### Purpose - why do we need supercomputers?
64 |
65 | Solve more complex problems
66 |
67 | - solve existing problems faster, tomorrows weather today not tomorrow
68 |
69 | - solve larger problems, higher resolution weather forecasts
70 |
71 | - dangerous problems
72 |
73 | - problems which otherwise could not be explored, how global warming impacts weather systems
74 |
75 | ### Why use parallelism?
76 |
77 | Splitting up large problems into smaller parts, give examples of tangible things and then move to more abstract computational examples. Focus on the idea of work being spread across the different elements.
78 |
79 | ### Why parallel
80 |
81 | Talk about communications - highlight in most parallel situations
82 | data needs to be shared and updated as the computation takes place.
83 | Talk about the differences in speed between communication and
84 | computation. Highlight that speed-up is not perfect, two CPUs don’t
85 | do it twice as fast as one but are faster and scale it up.
86 |
87 | Bottlenecks - talk about how some parts of the code may cause the
88 | rest to have to stop/slow down while it operates - particularly
89 | talk about serial parts in relation to parallel parts.
90 |
91 | Deadlocks - talk about the importance on ensuring that data or
92 | processes that depend on each other are kept in synch - so for
93 | example you don’t end up with a case of one wanting data the other
94 | has but it is waiting on the first one to finish something else.
95 |
96 | ## Supplemental Points
97 |
98 | Computer - ensure that the audience knows what a computer is and
99 | that they understand that it is a tool to enable us to do more.
100 |
101 | Science on Computers - why
102 |
103 | - Speed
104 |
105 | - Accuracy
106 |
107 | - Danger
108 |
109 | - Cost
110 |
111 | Talk about how modern science is very difficult to deal with/research
112 | in without the support provided by computers and software available
113 | to us.
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
123 |
124 | This work is licensed under a
125 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
126 | © Copyright EPCC, The University of Edinburgh 2017.
127 |
128 |
--------------------------------------------------------------------------------
/Activities/ParallelSums/Readme.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | |
7 |
8 |
9 | |
10 |
11 |
12 | |
13 |
14 |
15 |
16 |
17 | # Parallel Sums
18 |
19 | **Version: 1.0**
20 |
21 | For the latest version of this document please see:
22 |
23 | * https://github.com/EPCCed/Activities/tree/master/Activities/ParallelSums
24 |
25 | ## Aim
26 |
27 | Demonstrate how to do sums in parallel in two ways:
28 |
29 | - a coordinator-worker way of solving the problem
30 |
31 | - a peer-based method
32 |
33 | This activity is most suitable for a classroom/workshop environment.
34 |
35 | ## Learning objectives
36 |
37 |
38 | - Benefits of working in parallel
39 |
40 | - Awareness of overheads introduced by parallelism
41 |
42 | - Introduction of two parallel approaches:
43 |
44 | - Advantages and disadvantages of parallel approaches
45 |
46 | ## Equipment
47 |
48 | - A set of numbered cards
49 |
50 | - Empty cards
51 |
52 | - Scrap paper (if needed)
53 |
54 | - Pens
55 |
56 | ### Note - Number Cards
57 |
58 | Each card should have a number on it. Numbers do not have to be
59 | unique. Use small positive integers as participants will need to sum
60 | these numbers. The use of small numbers helps enable a wide range of
61 | participation. It is important to note the total sum of the cards in
62 | use.
63 |
64 | ### Note - Empty Cards
65 |
66 | A set of empty cards for the participants to write their local sum
67 | on. To reduce waste, laminated blank cards and dry-wipe pens will
68 | enable re-use of empty cards.
69 |
70 | ## Method
71 |
72 | ### Coordinator-worker model
73 |
74 | - Give all participants a blank card and a pen.
75 |
76 | - Decide who is going to take on the role of the Coordinator and give them the
77 | numbered cards.
78 |
79 | - Get the Coordinator to shuffle the cards and distribute them evenly amongst
80 | the worker participants. In cases where there are spare cards, get the
81 | participants to decide on the best way to distribute these, e.g.
82 |
83 | - If the participants are all of equal ability, the remainder
84 | could be distributed evenly amongst the participants such that
85 | some have an extra card.
86 |
87 | - If the participants are of different abilities, the extra
88 | cards could be given to the person who is best at sums.
89 |
90 | - Each participant will calculate the sum of the cards they have
91 | been given. They will write this on their blank card and return
92 | the card to the Coordinator once they are finished. The
93 | Coordinator has to wait until they receive all the partial sums.
94 |
95 | - The Coordinator will add up the partial sums to calculate the
96 | global sum.
97 |
98 | - Check the global sum agrees with the precalculated value - if they
99 | do not agree you may have to undergo a debugging phase.
100 |
101 | #### Discussion points
102 |
103 | - Achieving good parallelism involves keeping all processors busy
104 | doing useful work. Could there be any weaknesses in this
105 | algorithm?
106 |
107 | ### Peer-based model
108 |
109 | In this approach, there is no coordinator - each worker will calculate
110 | the sum using information from their peers.
111 |
112 | In principle all processes would open and read from the same file - the system
113 | or algorithm will determine what each process reads.
114 |
115 | For this example, all participants will start with a small set of
116 | cards taken from the full set. This is all participants reading from
117 | the same file, but reading different bits.
118 |
119 | We can say that N is the total number of participants.
120 |
121 | Each participant will need one blank card, pen and a piece of paper to do their
122 | sums.
123 |
124 | - Get the participants to stand in a ring, each with their small set
125 | of numbered cards.
126 |
127 | - Each participant will calculate the sum of their cards and write
128 | it down on their blank card and their bit of paper.
129 |
130 | - Each participant will pass their total, written on the blank card,
131 | to the participant on their left and get a card with a partial sum
132 | from the participant on their right. Ask them to record the number
133 | of times they pass a number on. They want to do this N-1 times. So
134 | far 10 participants, they should pass 9 times.
135 |
136 | - Each participant will add the partial sum they got to the total they wrote
137 | on their bit of paper.
138 |
139 | - Each participant will send their partial sum card (without changing it) to
140 | the participant on their left and receive a new partial sum from the right.
141 |
142 | - Repeat this N-1 times.
143 |
144 | After N-1 communications all participants should have calculated the
145 | global sum. Check the total is correct.
146 |
147 | #### Discussion points
148 |
149 | - Compare this approach with the coordinator-worker approach. What
150 | is better or worse about this peer-based version?
151 |
152 | - Is this the best communications pattern that could be used?
153 |
154 | - An alternative might be to send the running total along the ring?
155 | Could this introduce problems in the process? Hint - if someone
156 | makes a mistake the error will propagate - sending partial sums
157 | without changing their value localises the problem. One process
158 | may get it wrong, but other processes should still get the correct
159 | answer.
160 |
161 | ## Want to know more?
162 |
163 | If you want to know more about EPCC Outreach activities visit:
164 |
165 | * https://www.epcc.ed.ac.uk/discover-and-learn
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
176 |
177 | This work is licensed under a
178 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
179 | © Copyright EPCC, The University of Edinburgh 2017.
180 |
181 |
--------------------------------------------------------------------------------
/Activities/MessagePassingSort/Readme.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | |
7 |
8 |
9 | |
10 |
11 |
12 | |
13 |
14 |
15 |
16 |
17 | # Message passage sorting
18 |
19 | **Version: 1.1.1**
20 |
21 | For the latest version of this document please see:
22 |
23 | * https://github.com/EPCCed/Activities/tree/master/Activities/MessagePassingSort
24 |
25 | ## Aim
26 |
27 | The aim of this activity is to demonstrate in a simple and effective
28 | manner:
29 |
30 | * A parallel sorting algorithm for a list of numbers using message
31 | passing techniques.
32 |
33 | This activity is best suited for a classroom or workshop environment. It
34 | will require a level of coordination by the facilitator leading the
35 | activity and is thus not suitable for a high throughput environment
36 | like a science festival.
37 |
38 | ## Learning objectives
39 |
40 | * Demonstrate how message passing helps resolve inter-process
41 | dependencies.
42 | * Highlight process task concepts in parallel computing.
43 |
44 | ## Equipment
45 |
46 | * Set of cards with Integers clearly printed on them.
47 |
48 | 
49 |
50 | An early version of the Message Passing Sort being tried out at the
51 | British Science Festival held in Aberdeen in 2012. The arrow is being
52 | used to indicate in which direction the sorts should be taking place
53 | in.
54 |
55 | ### Note
56 |
57 | Using positive integers will allow a wider audience to participate in
58 | this activity.
59 |
60 | The numbers do not need to form a continuous sequence although they
61 | are in this example.
62 |
63 | Ensure that there is a larger supply of cards that you anticipate
64 | using in each activity run. This will allow you to work with large
65 | participant numbers and replace any damaged or lost cards.
66 |
67 | ## Overview
68 |
69 | The participant numbers for this activity are restricted by space,
70 | equipment and the activity organiser.
71 |
72 | Remember the more cards or participants you have the longer it will
73 | take to complete this activity.
74 |
75 | ### Suitability
76 |
77 | Venue: Classroom, Community Group, Workshop
78 | Age: 7+
79 |
80 | ### Note
81 |
82 | This activity can be a little confusing - it requires the organiser to keep
83 | track and help out where things go awry. The important thing is not to
84 | panic - this is normal.
85 |
86 |
87 | ## Procedure
88 |
89 | The activity will be illustrated using three participants and cards
90 | numbered 1 to 12. The activity can be extended to larger numbers of
91 | people and cards.
92 |
93 | ### Set-Up
94 |
95 | Number the participants starting from 0 to P-1, where P is the total
96 | number of participants.
97 |
98 | Ensure each participant knows their number and whether it is an even or
99 | odd number (if you think that they will require some assistance to
100 | determine this you could provide some stickers indicating whether even
101 | or odd).
102 |
103 | For this example we assume that we have three participants, they will thus be numbered 0,1,2.Include the number zero in the even group to make this activity easier to explain. You could use 1 to P to number the participants but this activity starts at 0 which aligns with a lot of
104 | programming languages and the [Message Passing Interface](http://mpi-forum.org/) (MPI) library
105 | commonly used to implement this algorithm type. If you are familiar with MPI we are assigning the participants ranks. This is a judgement
106 | call depending on your confidence and your audience.
107 |
108 | ### Process
109 |
110 |
113 |
114 | 1. Get the participants to stand in a line in the order of the participant numbers. Shuffle the numbered cards and give
115 | each participant 4 cards:
116 |
117 | 
118 | 2. Each participant should do a local sort their assigned cards, lowest to highest:
119 |
120 | 
121 | 3. Even numbered participants compare their highest valued card number with
122 | the lowest card number of their highest odd numbered neighbour. In this
123 | example, participant 0 will compare with participant 1 while participant 2 will be idle. If the odd
124 | numbered participant has the lower number then swap numbers. Note that participants at the edge of the line, numbers 0 and P-1, do not interact with each other.
125 |
126 | 
127 | 4. Participants who received a new number should resort their cards.
128 |
129 | 
130 | 5. Even numbered participants compare their lowest card number with
131 | the highest card number from their lowest odd numbered neighbour. In this
132 | example 2 will compare with 1 and 0 will be idle. If the even
133 | numbered participant has the lower number then swap numbers.
134 |
135 | 
136 | 6. Participants who received a new number should resort their cards.
137 |
138 | 
139 | 7. Repeat steps 3,4,5,6 Go until the cards are sorted:
140 |
141 | 
142 |
143 | ### What is the terminating condition?
144 |
145 | As the organiser has a global view, they can see when the list is
146 | completely sorted.
147 |
148 | How do the participants to recognise the entire list has been sorted
149 | when they are only know about their own numbers?
150 |
151 | ## Discussion
152 |
153 | **Question**: How does the number of people affect the sort?
154 |
155 | **Question**: How does the number of cards affect the sort?
156 |
157 | **Question**: What changes could be made to improve performance?
158 |
159 | **Question**: Can the participants develop a different approach?
160 |
161 | ## Want to know more?
162 |
163 | If you want to know more about EPCC Outreach activities visit:
164 |
165 | * https://www.epcc.ed.ac.uk/discover-and-learn
166 |
167 | ## Acknowledgements
168 |
169 | * Male silhouette came from the [man shape](https://openclipart.org/detail/182185/man-shape) at openclipart.
170 | * Female silhouette came from the female from the [Man/woman shape Carl Sagan plate](https://openclipart.org/detail/269831/manwoman-shape-carl-sagan-plate) at openclipart.
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
180 |
181 | This work is licensed under a
182 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
183 | © Copyright EPCC, The University of Edinburgh 2017.
184 |
--------------------------------------------------------------------------------
/Activities/Reference/Introduction/Computers/theme/epcc.css:
--------------------------------------------------------------------------------
1 | /**
2 | * A simple theme for reveal.js presentations, similar
3 | * to the default theme. The accent color is darkblue.
4 | *
5 | * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
6 | * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
7 | */
8 |
9 | @import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
10 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
11 |
12 | /*********************************************
13 | * GLOBAL STYLES
14 | *********************************************/
15 |
16 | body {
17 | background: #fff;
18 | background-color: #fff;
19 | }
20 | .reveal {
21 | font-family: "Lato", sans-serif;
22 | font-size: 36px;
23 | font-weight: normal;
24 | color: #000;
25 | background-image: url("../../images/drawing.svg"), url("../../images/uoe_small.png");
26 | background-position: 2% 2%, 98% 2%;
27 | background-repeat: no-repeat, no-repeat;
28 | background-size: 15% auto, 6% auto;
29 | }
30 | .reveal {
31 | font-size: 36px;
32 | font-weight: normal;
33 | letter-spacing: -0.02em;
34 | color: black;
35 | }
36 | ::selection {
37 | color: #fff;
38 | background: rgba(0, 0, 0, 0.99);
39 | text-shadow: none;
40 | }
41 | .reveal .slides > section, .reveal .slides > section > section {
42 | line-height: 1.3;
43 | font-weight: inherit;
44 | }
45 |
46 | /*********************************************
47 | * HEADERS
48 | *********************************************/
49 |
50 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
51 | margin: 10px 0 15px 0;
52 | color: #000;
53 | font-family: "News Cycle", Impact, sans-serif;
54 | font-weight: normal;
55 | line-height: 1.2;
56 | letter-spacing: normal;
57 | text-transform: none;
58 | text-shadow: none;
59 | word-wrap: break-word;
60 | }
61 | .reveal h1 {
62 | font-size: 2.11em;
63 | }
64 | .reveal h2 {
65 | font-size: 1.51em;
66 | }
67 | .reveal h3 {
68 | font-size: 1.3em;
69 | }
70 | .reveal h4 {
71 | font-size: 1em;
72 | }
73 | .reveal h1 {
74 | text-shadow: none;
75 | }
76 |
77 | /*********************************************
78 | * OTHER
79 | *********************************************/
80 |
81 | .reveal p {
82 |
83 | margin: 20px 0;
84 | line-height: 1.3;
85 | }
86 |
87 | /* Ensure certain elements are never larger than the slide itself */
88 |
89 | .reveal img, .reveal video, .reveal iframe {
90 | max-width: 95%;
91 | max-height: 95%;
92 | }
93 | .reveal strong, .reveal b {
94 | font-weight: bold;
95 | }
96 | .reveal em {
97 | font-style: italic;
98 | }
99 | .reveal ol, .reveal dl, .reveal ul {
100 | display: inline-block;
101 | text-align: left;
102 | margin: 0 0 0 1em;
103 | }
104 | .reveal ol {
105 | list-style-type: decimal;
106 | }
107 | .reveal ul {
108 | list-style-type: disc;
109 | }
110 | .reveal ul ul {
111 | list-style-type: square;
112 | }
113 | .reveal ul ul ul {
114 | list-style-type: circle;
115 | }
116 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul {
117 | display: block;
118 | margin-left: 40px;
119 | }
120 | .reveal dt {
121 | font-weight: bold;
122 | }
123 | .reveal dd {
124 | margin-left: 40px;
125 | }
126 | .reveal q, .reveal blockquote {
127 | quotes: none;
128 | }
129 | .reveal blockquote {
130 | display: block;
131 | position: relative;
132 | width: 70%;
133 | margin: 20px auto;
134 | padding: 5px;
135 | font-style: italic;
136 | background: rgba(255, 255, 255, 0.05);
137 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
138 | }
139 | .reveal blockquote p:first-child, .reveal blockquote p:last-child {
140 | display: inline-block;
141 | }
142 | .reveal q {
143 | font-style: italic;
144 | }
145 | .reveal pre {
146 | display: block;
147 | position: relative;
148 | width: 90%;
149 | margin: 20px auto;
150 | text-align: left;
151 | font-size: 0.55em;
152 | font-family: monospace;
153 | line-height: 1.2em;
154 | word-wrap: break-word;
155 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);
156 | }
157 | .reveal code {
158 | font-family: monospace;
159 | }
160 | .reveal pre code {
161 | display: block;
162 | padding: 5px;
163 | overflow: auto;
164 | max-height: 400px;
165 | word-wrap: normal;
166 | }
167 | .reveal table {
168 | margin: auto;
169 | border-collapse: collapse;
170 | border-spacing: 0;
171 | }
172 | .reveal table th {
173 | font-weight: bold;
174 | }
175 | .reveal table th, .reveal table td {
176 | text-align: left;
177 | padding: 0.2em 0.5em 0.2em 0.5em;
178 | border-bottom: 1px solid;
179 | }
180 | .reveal table th[align="center"], .reveal table td[align="center"] {
181 | text-align: center;
182 | }
183 | .reveal table th[align="right"], .reveal table td[align="right"] {
184 | text-align: right;
185 | }
186 | .reveal table tr:last-child td {
187 | border-bottom: none;
188 | }
189 | .reveal sup {
190 | vertical-align: super;
191 | }
192 | .reveal sub {
193 | vertical-align: sub;
194 | }
195 | .reveal small {
196 | display: inline-block;
197 | font-size: 0.6em;
198 | line-height: 1.2em;
199 | vertical-align: middle;
200 | }
201 | .reveal small * {
202 | vertical-align: top;
203 | }
204 |
205 | /*********************************************
206 | * LINKS
207 | *********************************************/
208 |
209 | .reveal a {
210 | color: #00008B;
211 | text-decoration: none;
212 | -webkit-transition: color 0.15s ease;
213 | -moz-transition: color 0.15s ease;
214 | transition: color 0.15s ease;
215 | }
216 | .reveal a:hover {
217 | color: #0000f1;
218 | text-shadow: none;
219 | border: none;
220 | }
221 | .reveal .roll span:after {
222 | color: #fff;
223 | background: #00003f;
224 | }
225 |
226 | /*********************************************
227 | * IMAGES
228 | *********************************************/
229 |
230 | .reveal section img {
231 | margin: 10px 0px;
232 | background: rgba(255, 255, 255, 0.12);
233 | border: 0px solid #000;
234 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
235 | }
236 | .reveal section img.plain {
237 | border: 0;
238 | box-shadow: none;
239 | }
240 | .reveal a img {
241 | -webkit-transition: all 0.15s linear;
242 | -moz-transition: all 0.15s linear;
243 | transition: all 0.15s linear;
244 | }
245 | .reveal a:hover img {
246 | background: rgba(255, 255, 255, 0.2);
247 | border-color: #00008B;
248 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
249 | }
250 |
251 | /*********************************************
252 | * NAVIGATION CONTROLS
253 | *********************************************/
254 |
255 | .reveal .controls .navigate-left, .reveal .controls .navigate-left.enabled {
256 | border-right-color: #00008B;
257 | }
258 | .reveal .controls .navigate-right, .reveal .controls .navigate-right.enabled {
259 | border-left-color: #00008B;
260 | }
261 | .reveal .controls .navigate-up, .reveal .controls .navigate-up.enabled {
262 | border-bottom-color: #00008B;
263 | }
264 | .reveal .controls .navigate-down, .reveal .controls .navigate-down.enabled {
265 | border-top-color: #00008B;
266 | }
267 | .reveal .controls .navigate-left.enabled:hover {
268 | border-right-color: #0000f1;
269 | }
270 | .reveal .controls .navigate-right.enabled:hover {
271 | border-left-color: #0000f1;
272 | }
273 | .reveal .controls .navigate-up.enabled:hover {
274 | border-bottom-color: #0000f1;
275 | }
276 | .reveal .controls .navigate-down.enabled:hover {
277 | border-top-color: #0000f1;
278 | }
279 |
280 | /*********************************************
281 | * PROGRESS BAR
282 | *********************************************/
283 |
284 | .reveal .progress {
285 | background: rgba(0, 0, 0, 0.2);
286 | }
287 | .reveal .progress span {
288 | background: #00008B;
289 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
290 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
291 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
292 | }
293 |
--------------------------------------------------------------------------------
/Activities/Reference/Introduction/Computers/slides.md:
--------------------------------------------------------------------------------
1 | # What is a Computer?
2 |
3 |
4 | ----
5 |
6 | # Aims
7 |
8 | * Describe what a Computer is
9 | * Describe the uses of a Computer
10 | * Identify the impact of Computers on the world
11 |
12 | ----
13 |
14 | # Your Thoughts
15 |
16 | * Ask yourself what a computer is?
17 | * How would you recognise a computer?
18 |
19 |
20 | ----
21 |
22 | # The Dictionary Definitions
23 |
24 | **Oxford Dictionary**: An electronic device which is capable of receiving information (data) in a particular form and of performing a sequence of operations in accordance with a predetermined but variable set of procedural instructions (program) to produce a result in the form of information or signals.
25 |
26 | ----
27 |
28 | # The Dictionary Definitions
29 |
30 | **Free Online Dictionary of Computing**: A machine that can be programmed to manipulate symbols. Computers can perform complex and repetitive procedures quickly, precisely and reliably and can quickly store and retrieve large amounts of data.
31 |
32 | ----
33 |
34 | # Types
35 |
36 | * What Types of Computer are there?
37 | * How to Classify Computers?
38 | * Size
39 | * Function
40 | * Use
41 |
42 | ----
43 |
44 | # Size
45 |
46 | * Embedded
47 | * Mobile
48 | * Mobile Phone
49 | * Tablet
50 | * Laptop
51 | * Microcomputer
52 | * Desktop
53 | * Minicomputer (Obsolete)
54 | * Workstation (Microcomputer)
55 | * Server (Boundary Case)
56 | * Mainframe
57 | * Supercomputer
58 |
59 | ----
60 |
61 | # Size
62 |
63 | You can lose a phone down a drain if you dropped it
64 |
65 | You can throw a laptop easily
66 |
67 | You can lift a desktop when you need to
68 |
69 | You cannot move a supercomputer without assistance
70 |
71 | ----
72 |
73 | # Function
74 |
75 | Computers can be grouped by their intended function.
76 |
77 | * Server
78 | * Workstation
79 | * Personal Computing Devices
80 | * Embedded
81 |
82 | ----
83 |
84 | # Uses of a Computer
85 |
86 | What do you use a computer for? At home, school, other places?
87 |
88 | What do members of your family use a computer for?
89 |
90 | What else could a computer be used for?
91 |
92 |
93 | ----
94 |
95 | # Home and Office Uses
96 |
97 | * Games
98 | * Office Work (Spreadsheets, Word Processing, Databases)
99 | * Communication
100 | * Information
101 |
102 |
103 | ----
104 |
105 | # World Uses
106 |
107 | * Engineering Design and Automation
108 | * Office Work (Spreadsheets, Word Processing, Databases)
109 | * Communication Systems
110 | * Medicine
111 | * Science Research
112 | * Infrastructure (Transport, Power, Water)
113 |
114 | ----
115 |
116 | # Who uses them?
117 | * Scientists
118 | * Engineers
119 | * Doctors
120 | * Artists
121 | * Musicians
122 | * Teachers
123 | * Students
124 | * Almost everyone (including you)
125 |
126 | ----
127 |
128 | # What does it mean for us?
129 | Computers are now a part of daily life.
130 |
131 | Modern science, engineering and medicine are dependent on computers for progress and operation.
132 |
133 | Modern Communications rely on computers in many forms.
134 |
135 | Increased availability of news and culture around the world.
136 |
137 | Important that we understand the capabilities and limitations of computers
138 |
139 | ----
140 |
141 | # Important
142 | Computers are tools.
143 |
144 | People have to use them sensibly.
145 |
146 | Don't use them for tasks they are not suitable for.
147 |
148 | ---
149 |
150 | # What is a Supercomputer?
151 |
152 | ----
153 |
154 | # Aims
155 |
156 | * Describe what a Supercomputer is
157 | * Describe the uses of a superomputer
158 | * Describe why supercomputers are needed
159 |
160 |
161 | ----
162 |
163 | # Why?
164 |
165 | Why would we use a supercomputer or any computer in science?
166 |
167 | * Experiments - we can do experiments on computers to help design, supplement or carry out ideas that otherwise wouldn't be possible
168 | * Data Processing - experiments and sensors generate lots of data
169 | * Visualisation - a method for showing how results were created and to allow exploration of data
170 | * Speed - computers are faster at almost every type of calculation and less prone to careless error
171 |
172 | ----
173 |
174 | # Why?
175 |
176 | Why could we not do some experiments?
177 |
178 | * Dangerous - looking at volcano eruptions and effects
179 | * Too Large - understanding how the universe formed
180 | * Too Small - understanding how things work at the atomic or subatomic level
181 | * Hard to Repeat - doing certain actions in the same way in the same conditions can be difficult
182 | * Cost - some experiments are really expensive
183 |
184 | ----
185 |
186 | # Why?
187 |
188 | Better experiment design
189 |
190 | * Cost - some experiments are really expensive, doing preliminary work on computers can eliminate dead ends
191 | * Lower Effects - side-effects of experiments can be wide-ranging - better design helps to minimise this
192 |
193 | Supplement Experiments
194 |
195 | * Hard to Repeat - computers can help with data recording and can be used to explore existing data in new ways
196 | * Data Sampling - computers can filter and record data better than people - particularly in high speed experiments
197 |
198 | ----
199 |
200 | # Why?
201 |
202 | Speed
203 |
204 | * Computers process calculations really quickly
205 | * Can iterate through experiments or result data
206 | * Example: Vehicle Design - can eliminate poor designs and concentrate on more viable ideas while retaining a breadth of options
207 |
208 | ----
209 |
210 | # Types
211 |
212 | Generally activites are broken into two main types
213 |
214 | * Data Processing - processing data from an experiment
215 | * Simulation - a virtual experiment
216 |
217 | ----
218 |
219 | # Bigger, Faster
220 |
221 | If we have computers, why do we need supercomputers?
222 |
223 | The computers we are used to are fast, they can process data far more rapidly than a person can. However, for a lot of scientific computing even the fastest desktop is insufficient.
224 |
225 | Part of this is less about speed and more about size, often the problems being examined are too large for a desktop computer to deal with.
226 |
227 | Simluating the formation of the galaxy could be done on a desktop but it wouldn't be as accurate, it wouldn't be as fast and for science purposes not that useful.
228 |
229 | ----
230 |
231 | # Bigger, Faster
232 |
233 | If the data we get from a computer isn't accurate enough, it is not that much use to us for scientific research.
234 |
235 | So we need to be able to run big problems, but also they need to run in an acceptable amount of time - hours rather than months or years.
236 |
237 | So we use supercomputers - these machines can deal with huge problems like the design of an aircraft or the formation of a planet and do experiments in hours rather then months.
238 |
239 | And for the scientists this makes life easier, they can do research quicker or explore more options.
240 |
241 | ----
242 |
243 | # A Supercomputer
244 |
245 | A supercomputer is not just a single massive computer -
246 |
247 | A supercomputer is a collection of smaller computers connected together.
248 |
249 | Isn't that just like the internet?
250 |
251 |
252 | ----
253 |
254 | # A Supercomputer
255 |
256 | No - the internet is a collection of computers which can talk but all operate on different things and talk slowly to each other.
257 |
258 | A supercomputer is designed and put together so that the computers in it talk to each other at really high speeds so they can share calculation data.
259 |
260 | A supercomputer contains computers which are as similar in their core to a desktop but have all the extras stripped away so that each of them can operate efficiently on the work they are given.
261 |
262 |
263 |
264 | ----
265 |
266 | # A Supercomputer
267 |
268 | A supercomputer at a high level has these parts:
269 |
270 | * Compute Nodes - these do all the work
271 | * Power System - supplies and regulates the electricity
272 | * Cooling System - computers get warm, supercomputers more so
273 | * Network - highly optimised, high speed network coommunications.
274 | * File System - a shared filesystem across the network to allow data sharing
275 | * Job Submission System - this is where you submit your program to run
276 |
277 | ----
278 |
279 | # Uses
280 |
281 | Supercomputers are used for large problems, though large is in terms of how much computational processing is required. Often looking at really small things requires a lot of computing power to process.
282 |
283 | Supercomputers have been used for:
284 | * Galaxy Formation Simulation
285 | * Climate Modelling
286 | * Weather Prediction
287 | * Vehicle Design
288 |
289 | Supercomputers can be used for any system or field that can be reduced to rules and calculations, even if the computer develops these without us understanding them.
290 |
291 |
292 | ----
293 |
294 | # Example - ARCHER
295 |
296 | ARCHER is the current UK National Supercomputing Service.
297 |
298 | ARCHER is a Cray XC30 MPP supercomputer used by scientists across the UK to support their research and development.
299 |
300 | There are 118,080 processor cores supported by 307.5 Terabytes of memory in total on 4920 nodes - this takes up a lot of space but provides a lot of computing power.
301 |
302 | ----
303 |
304 | # Case Studies
305 |
306 | Supercomputers are used for a range of different applications. The [ARCHER website](http://www.archer.ac.uk/casestudies/) contains case studies on selected applications.
307 |
308 | A selection of these include:
309 |
310 | A personalised approach to computational heart modelling - looking at better support for heart related medical care.
311 |
312 | Disovering Dinosaur footprints - looking are how evolutionary biology is supported and how modern animals can be placed in context with evolutionary pressures.
313 |
--------------------------------------------------------------------------------
/Activities/Sort/Readme.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | |
7 |
8 |
9 | |
10 |
11 |
12 | |
13 |
14 |
15 |
16 |
17 | # Sorting
18 |
19 | **Version: 1.2.0**
20 |
21 | For the latest version of this document please see:
22 |
23 | * https://github.com/EPCCed/Activities/tree/master/Activities/Sort
24 |
25 | ## Aim
26 |
27 | The aim of this activity is to demonstrate in a simple and effective manner:
28 |
29 | * The basics of a sorting algorithm and why it is relevant to
30 | computing
31 | * The benefits of performing tasks in parallel and why this is
32 | applicable to supercomputing
33 |
34 | This activity is suitable for all type of environments - it could be used
35 | in a classroom where concepts can be leisurely discussed or in a high
36 | throughput environment, like a science festival, where you may have a
37 | large number of attendees wishing to participate and not much time to
38 | dedicate to each of them.
39 |
40 | ## Learning objectives
41 |
42 | On completing this activity, participants should have:
43 |
44 | * A basic understanding of one or two methods of sorting and how
45 | sorting is used in modern computing and supercomputing.
46 | * An understanding of how supercomputers work in parallel to solve problems.
47 | * How multiple people sorting will do more than one person in the same
48 | time or the same end can be achieved in less time.
49 | * How modern parallel computers operate on the same principle.
50 | * How bottlenecks and challenges exist that can slow things down.
51 |
52 | ## Pre-requisites
53 |
54 | This activity assumes that you have already discussed the basics of a
55 | computer and what it is used for. It also assumes that you have given
56 | a short explanation of a supercomputer, explaining that this is made
57 | up of many many computers connected together.
58 |
59 | ## Overview
60 |
61 | The purpose of this activity is to sort a set of coloured balls
62 | into their different colours, either measuring the time it takes
63 | to sort a fixed number of balls or measuring the number of balls
64 | that can be sorted in a fixed amount of time.
65 |
66 | Once one person has carried out the sort, the sort is repeated with
67 | two people, then with more people again. Each time the time and/or
68 | number of balls is recorded.
69 |
70 | At the end of the activity you should be able to see that by adding
71 | more people you have been able to sort the same number of balls
72 | more quickly, or have been able to sort more balls within the same
73 | fixed period of time.
74 |
75 | ## Equipment
76 |
77 | The equipment required for this activity is relatively simple
78 | and can go as far as your budget will stretch. The minimum
79 | set-up would be:
80 |
81 | * A set of coloured objects to sort, e.g. balls, bean bags, scrunched up pieces
82 | of coloured paper, etc.
83 | * A box or bag to contain the coloured objects. This is the sorting source.
84 | * As many smaller boxes as there are colours - these are the sorting sinks.
85 | * A timer (digital or analogue) that can count down 30s or 1min.
86 | * A sheet of A3 with a pen sticky dots to note the number of objects sorted
87 | in the allotted time.
88 |
89 | Label each of the coloured object sinks, i.e. boxes, with the colour
90 | that it is supposed to act as a sink for - you can either print a
91 | label or get coloured boxes/bucket that match the colour of the
92 | objects that you are trying to sort - you could also label these.
93 |
94 | Note it is helpful to use labels that are both coloured and have
95 | the written name of the colour. This allows for both young children
96 | who cannot yet read and also for participants who have colour
97 | blindness.
98 |
99 | Labels are available to download at: [pdf file](https://github.com/EPCCed/Activities/blob/master/Activities/Sort/pdf/SortingLabels.pdf).
100 |
101 |
102 | You can be as sophisticated or as simple as you like. Three examples
103 | are given below, ranging in price and sophistication.
104 |
105 | Simple boxes can be used, similar to those found in a stationery
106 | cupboard at work:
107 |
108 | 
109 |
110 | Or a slightly more advanced set of buckets and decorated boxes:
111 |
112 | 
113 |
114 | To a set of buckets and a colourful stand (originally a flower
115 | stand) with a set of small pyramid bean bags.
116 |
117 | 
118 |
119 | You can create your own graph paper for tabulating sort results or you can
120 | generated your own via a service like:
121 |
122 | * [https://www.blocklayer.com/graph-paper.aspx](https://www.blocklayer.com/graph-paper.aspx)
123 |
124 | To generate a blank piece of A3 graph paper with ~5mm spacing which should be usable with small sticky coloured circles using the options given by the image below.
125 |
126 | 
127 |
128 | We provide an annotated piece of A3 graph paper you can use:
129 |
130 | * [Sample A3 graph paper](https://github.com/EPCCed/Activities/blob/master/Activities/Sort/pdf/sort-graph-paper.pdf).
131 |
132 | It should bepossible to tweak the text sizes, numbers etc easily enough using
133 | any pdf editor. Apple Preview was usedt o annotate the pdf linked
134 | here.
135 |
136 | ## Scenario
137 |
138 | To run this activity place the coloured object source and place the
139 | ball sinks nearby.
140 |
141 | You can optionally prepare an A3 sheet with the
142 | numbered of colour objects you have along the y-axis and the number
143 | of people involved in the activity on the x-axis (see the diagram
144 | below), you can then get your participants to register their scores
145 | as they complete the activity.
146 |
147 | Explain to your audience that you are going to demonstrate the
148 | benefits of doing things in parallel. Tell them that they can
149 | only use one hand for this task and only process one object at a
150 | time so if you are using coloured balls you can only have one coloured
151 | ball in your hand at a time. This helps to level the playing field as
152 | some people, if their hands are large, will be able to handle more
153 | than one object at a time.
154 |
155 | We have found it useful to establish some rules:
156 |
157 | ```
158 | 1. You can only use one hand to sort the objects.
159 | 2. You can only handle one object at a time.
160 | 3. You have 30s (or insert your time limit) to sort as many objects as you can.
161 | 4. Put the coloured object into the corresponding coloured bucket.
162 | 5. Don't worry if you make a mistake, keep going!
163 | 6. Try the activity as an individual or as a group and add more people to the group to see what
164 | happens.
165 | ```
166 |
167 | It might be useful to print something out with variants of these rules, it will certainly
168 | save your voice.
169 |
170 | You then:
171 |
172 | * Get one person to sort as many coloured objects as they can in, for example, 30s.
173 | * If you are doing this on your own you can hand over the timer to a friend or family
174 | member as it gets them involved and it saves you from having to monitor two things.
175 | However, unless your timer emits an audible beep on completion you may still have
176 | to keep an eye on the timer as participants can sometimes get involved in their
177 | child's/friend's efforts and forget to monitor the timer.
178 | * Count the objects they have sorted - sometimes you can count them as they are being
179 | sorted but to do this you need to get someone else to handle the timer. Note down the
180 | score and/or get the participant to add a sticky dot or mark with a pen to the chart
181 | as shown below.
182 | * Make sure the objects are well shuffled in the source container.
183 | * Now get more than one person to carry out the same task. You can repeat with as
184 | many people as you have in the group.
185 |
186 | 
187 |
188 | **Caption**: Keeping track of the coloured objects sorted in 30s.
189 |
190 | 
191 |
192 | **Caption**: A more recent score example using a precursor to the sample graph paper provided.
193 |
194 |
195 | ## Discussion - parallelism
196 |
197 | Discuss your results with the participants. It is likely that the number of balls that have
198 | been sorted increases with the number of people sorting. This is very similar to the simplest
199 | cases of running a code on a supercomputer - the more processors you add the more work you
200 | can do in the same time.
201 |
202 | You will also likely note that, as the number of people increases, the number
203 | of objects sorted does not increase linearly. Ask them why this is.
204 | Usually there is contention getting to the coloured objects or
205 | getting access to the source container. You can draw analogies with
206 | what happens in computers - memory contention, etc. You can also
207 | introduce the idea of [speedup](https://en.wikipedia.org/wiki/Speedup).
208 |
209 | Bear in mind that in most cases you will not be dealing with a
210 | homogeneous system, e.g. a 5-year old child setting the baseline and
211 | then performing the same task with their parent. Hence don't be
212 | surprised if the results don't show perfect speedup, this is all worth
213 | discussion and has analogies with computers and supercomputers.
214 |
215 | ## Discussion - sorting
216 |
217 | So far you have used sorting to demonstrate how parallelism works, but
218 | have not discussed the nature of sorting and its relevance to
219 | supercomputers and every day life. When running this activity it is
220 | worthwhile discussing this.
221 |
222 | Good discussion point are:
223 |
224 | * Sorting algorithms are used everyday and are all around you. For
225 | example, when you shop on-line you can often sort the items by price
226 | and relevance.
227 | * Supercomputers have been used to sort and compare the interactions
228 | between genes in the human body. This helps identify gene interactions
229 | that may increase the risk of a person developing a particular
230 | disease. This can help to provide early treatment and intervention.
231 | * There are many different types of sorting methods. Some can be run
232 | in parallel with different parts of the sort being carried out on
233 | different cores.
234 |
235 | If you wish to discuss sorting in more detail or try out different
236 | sorting methods, the post sort activity is worth considering.
237 |
238 |
239 | ## Other considerations
240 |
241 | Depending on the enthusiasm of your participants, the action at the
242 | source container can get a little bit frenetic so make sure that there
243 | are no sharp edges or hard bits that could cause damage to young
244 | hands.
245 |
246 | Try to get as many people involved in the process, so while one person
247 | is sorting another can be the time keeper.
248 |
249 | The example above sorts as many balls as you can in a fixed period of
250 | time. This is beneficial at e.g. a science festival when you want to
251 | place a limit on the time each person interacts with an activity, to
252 | give others an opportunity to participate. However you can also sort a
253 | fixed number of balls and measure the time this takes with different
254 | numbers of people.
255 |
256 | ## Want to know more?
257 |
258 | If you want to know more about EPCC Outreach activities visit:
259 |
260 | * https://www.epcc.ed.ac.uk/discover-and-learn
261 |
262 |
263 | ## Resources
264 |
265 | * Labels for the boxes and trugs are available to download at: [pdf file](https://github.com/EPCCed/Activities/blob/master/Activities/Sort/pdf/SortingLabels.pdf).
266 | * "How do you use a Supercomputer" flyer. This is a good piece of supporting material for this
267 | activity, providing a simple overview of sorting and parallel sorting. See: https://www.epcc.ed.ac.uk/sites/default/files/PDF/How_do_you_use_a_supercomputer.pdf
268 |
269 | ##
270 |
271 |
272 |
273 |
274 |
275 |
276 |
278 |
279 | This work is licensed under a
280 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
281 | © Copyright EPCC, The University of Edinburgh 2017.
282 |
--------------------------------------------------------------------------------
/Activities/PostalSort/Readme.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | |
7 |
8 |
9 | |
10 |
11 |
12 | |
13 |
14 |
15 |
16 |
17 | # Postal sort
18 |
19 | ## Background
20 |
21 | Data often has to be sorted. This may be done to facilitate access or to make access to the data more efficient. However, if the amount of data that has to be sorted, or how it has to be sorted, is very large then this process may end up being very time-consuming and thus expensive. For example, sorting stock using a serial number could involve a large number of time-consuming comparison of the serial number for each item of stock and to do this for the whole volume of stock can be inefficient. If the amount of data is
22 | very large, then perhaps a machine or single person could not do it by themselves in an acceptable amount of time. We could try to make things go faster by employing mutliple sorter people to work together at the same time.
23 |
24 | To make a large volume of data easier to handle by multiple sorters, we can split the data into smaller chunks. Each sorter can
25 | then work on their own smaller data chunk locally. However, at the end of the sorting process we need to combine all the locally sorted data into one globally sorted set which may require lots of communications and swaps of data between the sorters.
26 |
27 | To try and make this a little easier, we can use a sorting algorithm called a [bucket
28 | sort](https://en.wikipedia.org/wiki/Bucket_sort), it is distribution sort related to radix sort but more generalised.
29 | In this algorithm, we group the data into 'buckets' which have a common identification or grouping (like the numbers 0-9, 10-19, 20-29,...),
30 | then these buckets can be sorted individually and do not need to communicate with each other. Inside the buckets can be another bucket sort, a quick sort or it maybe that just getting into that bucket is enough to work with.
31 |
32 | If we use a list of numbers as our example, the bucket sort starts by separating the numbers into groups known as buckets.
33 | In the example below the numbers are first separated into three buckets: numbers below or equal to 10, numbers between
34 | 11 and up to and including 20 and over 20.
35 |
36 | 
37 |
38 | The numbers inside each bucket are then sorted. There are two
39 | different stages that can thus be parallelised and different strategies
40 | can be explored to obtain the optimal throughput.
41 |
42 | ## Learning objectives
43 |
44 | * Multiple workers sorting can do more than one worker in the same
45 | amount of time or the same goal can be achieved in less time.
46 | * Recognise parallelism in everyday life.
47 | * Reasoning behind modern computers employing parallelism.
48 | * Generate examples of parallelism in computers.
49 | * Concepts of hierarchy in data and processing.
50 | * Multiple algorithms in the same overall process.
51 | * Recognising exploitable data structures and hierarchy.
52 |
53 |
54 | ## Scenario
55 |
56 | How letters are sorted by a post office is an example of a bucket sort.
57 | This is a variant of a classic bucket sort which makes use of the structured nature of the postcode and address.
58 |
59 | When letters are gathered for delivery across a country by the post office, they have to be sorted into different postal areas.
60 | In the UK, this is determined by the post code. A postcode can represent a street (or part of one), a group of buildings, a single address or an organisation.
61 | For example a street may share the same postcode with the distriminating information ending in the address house number. Further information on UK postcodes can
62 | be found at [UK Post Codes on Wikipedia](https://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom).
63 |
64 | By using this structured information, we will be able to carry out a bucket sort on a set of letters with post codes and addresses.
65 |
66 | We can use the structure of the post code to create our buckets for sorting into. As there are multiple levels of information in the post code we can do a
67 | multi-level sort - how the letters are filtered from single mass to be delivered to achievable individual postal routes.
68 |
69 | In the post code, there are four main elements - the postcode area, district, sector and unit, as shown below. Each builds upon the previous one,
70 | so once the letters are sorted into area that can then be sorted seperate from all the other areas.
71 |
72 |
73 | | Level | Value |
74 | |-------|-------|
75 | | Area | EH |
76 | | District | EH9 |
77 | | Sector | EH9 3 |
78 | | Unit | EH9 3FD |
79 |
80 | The sort will start by splitting up the letters into area, then district, sector and unit. Once in the unit boxes, a postman would need to use the other lines
81 | of the address to determine the final destination (house number 39 not 37 on a street for example).
82 |
83 | These post codes can be sorted in a hierarchy based on this information. This diagram shows how letters for post codes EH2 8DS, EH2 8DW, EH2 8MW, G72 8NJ, G73 4DR and G73 4QN would be sorted through the different levels
84 | of area, district, sector and unit.
85 |
86 | 
87 |
88 |
89 |
90 | This activity has a number of letters that need to be sorted for
91 | delivery. We first separate the postcodes into areas (the first letters in the post code):
92 | so for the example post codes EH10, EH21 and EH32 need to be put into an EH bucket,
93 | while TR10, TR21 and TR32 head for a TR bucket.
94 |
95 | These buckets can then be sorted into districts, so in the EH bucket, letters for EH10 would be put into one bucket, EH11 another and so on.
96 |
97 | This can be repeated down the information in the postcode until the letters are sorted into the individual units ready for the postman to deliver them.
98 |
99 | At this stage the postman would be responsible for ordering the letters for delivery.
100 |
101 | This is an example of a multiple level sort which can benefit for parallelism. It does not have to be the same worker at each level, so each level of the sort can be
102 | carried out as it gets new letters. Workers could be reassigned if their level has finished, moving down the sort levels.
103 |
104 | This can be carried out at various levels - maybe you only need to show two levels in operation, for larger groups to get more people involved it may be benefical to have more levels (depending on equipment and space).
105 |
106 |
107 |
108 |
109 | ## Equipment
110 |
111 | To perform this activity you will need:
112 |
113 | * Containers to sort envelopes into. These can printer paper box, stackable letter trays or buckets. You need containers for each final postcode plus any
114 | intermediate steps. Our example has twelves boxes for the postcode districts and three boxes for the postcode areas making fifteen boxes total.
115 | * Container Labels - each container to be sorted into need a label with area, district, sector or unit - what is used is determined by your situation.
116 | * A container to hold the unsorted envelopes.
117 | * Envelopes for your participants to sort. These should have post codes on them which can be used as the basis for the sort.
118 | * Timer
119 |
120 | ### Envelopes
121 |
122 | You can make your own envelopes with postcodes from your surrounding area or print the following example 36
123 | [address labels](pdf/Post_sorting_address_labels_AveryL7163.pdf)
124 | on Avery No. L7163 post label pages (or equivalent).
125 |
126 | You will want to have a large number of envelopes and print three to five copies of these will result in a reasonable size set.
127 |
128 | As an additional cosmetic detail you can print a set of [stamps](pdf/Post_sorting_stamps_AveryL4736REV-25.pdf)
129 | for your envelopes. You can print these ARCHER stamps to complete your envelopes on Avery No. L4736REV-25 labels (or equivalent). There are 48 stamps per page.
130 |
131 | As the envelopes are likely to get a lot of handling laminating them will increase their durability.
132 |
133 | ### Example Kit
134 |
135 | 
136 | Example kit with the bag containing the envelopes on the left, the
137 | pre-sorting trays in the trolley (we were unable to use these because
138 | of space constraints) and the labelled final pigeon holes the letters
139 | go into.
140 |
141 | 
142 |
143 | ## The Activity
144 |
145 | ### Setting up the demo
146 |
147 |
148 | * **Setup up the envelopes**. Stick an address label and stamp on each envelope.
149 | * **Label your boxes**. Label each box with the postcode parts that you will use. You will need one for each bucket in each stage of your sort:
150 | For example, a two level sort on area and district using postcodes in KW, EH, SN and TR (this is a subset of available districts) would need the following labels:
151 | * KW
152 | * KW1 (for KW10, KW14 and KW18)
153 | * KW2 (for KW21, KW23, KW24 and KW29)
154 | * KW3 (for KW30 and KW32)
155 | * EH
156 | * EH1 (for EH10, EH14 and EH18)
157 | * EH2 (for EH21, EH23, EH24 and EH29)
158 | * EH3 (for EH30 and EH32)
159 | * SN
160 | * SN1 (for SN10, SN14 and SN18)
161 | * SN2 (for SN21, SN23, SN24 and SN25)
162 | * SN3 (for SN30 and SN32)
163 | * TR
164 | * TR1 (for TR10, TR14 and TR18)
165 | * TR2 (for TR21, TR23, TR24 and TR29)
166 | * TR3 (for TR30 and TR32)
167 |
168 | ## Running the activity
169 |
170 | * Shuffle the envelopes in the unsorted container.
171 |
172 | * Arrange your EH, KW, SN and TR boxes around the unsorted container.
173 |
174 | * Arrange your EH1, EH2 and EH3 boxes around the EH box; your KW1, KW2 and KW3 boxes around the KW and so on...
175 |
176 | 
177 | Possible arrangement of the boxes.
178 |
179 | Now get the participants to organise themselves to different jobs:
180 | you need people to sort from the unsorted container into the area buckets and people
181 | to sort from the area buckets into the district buckets.
182 |
183 | If you don't have enough people sorting into the buckets then the secondary sorters will have to wait
184 | until they have letters to sort.
185 |
186 | A possible allocation is in the diagram below.
187 |
188 | 
189 |
190 | In this instance 2 people have been allocated to
191 | put letters into the buckets and 4 into the district buckets.
192 |
193 | Now get the participants to sort the letters from the unsorted container to the area buckets. You should give them a time in which to sort as many as they can.
194 |
195 | After the time is finished, you can discuss with them what went well/poorly, what could change, what problems there were? They can try it again, changing things around.
196 |
197 | Let the participants drive the activity to experiment with the ideas contained in it.
198 |
199 |
200 | ## Discussion points
201 |
202 | **Question**: Is this too few/many?
203 |
204 | **Question**: What is the best configuration to maximise the number of letters sorted in a minute?
205 |
206 | **Question**: Would it be better to put everyone on doing the bucket sort and then moving on to the bins or would you be
207 | better to dynamically move your sorters from the bucket sort to the final bit sort withing the minute
208 | allocated to do the sorting?
209 |
210 | **Question**: How could you sort more envelopes in the same amount of time?
211 |
212 | **Question**: How could you use multiple people to do this sort?
213 |
214 | **Question**: How does the number of envelopes sorted in 30 seconds change with number of people?
215 |
216 | **Question**: How does this compare to a single person sort?
217 |
218 | **Question**: How could you make this more efficient? (consider placement
219 | of boxes, overlapping steps etc.)
220 |
221 | ## Want to know more?
222 |
223 | If you want to know more about EPCC Outreach activities visit:
224 |
225 | * https://www.epcc.ed.ac.uk/discover-and-learn
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
236 |
237 | This work is licensed under a
238 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
239 | © Copyright EPCC, The University of Edinburgh 2017.
240 |
--------------------------------------------------------------------------------
/LICENCE.md:
--------------------------------------------------------------------------------
1 | ## creative commons
2 |
3 | # Attribution-NonCommercial-ShareAlike 4.0 International
4 |
5 | Creative Commons Corporation (“Creative Commons”) is not a law firm
6 | and does not provide legal services or legal advice. Distribution
7 | of Creative Commons public licenses does not create a lawyer-client
8 | or other relationship. Creative Commons makes its licenses and
9 | related information available on an “as-is” basis. Creative Commons
10 | gives no warranties regarding its licenses, any material licensed
11 | under their terms and conditions, or any related information.
12 | Creative Commons disclaims all liability for damages resulting from
13 | their use to the fullest extent possible.
14 |
15 | ### Using Creative Commons Public Licenses
16 |
17 | Creative Commons public licenses provide a standard set of terms
18 | and conditions that creators and other rights holders may use to
19 | share original works of authorship and other material subject to
20 | copyright and certain other rights specified in the public license
21 | below. The following considerations are for informational purposes
22 | only, are not exhaustive, and do not form part of our licenses.
23 |
24 | * __Considerations for licensors:__ Our public licenses are intended
25 | for use by those authorized to give the public permission to use
26 | material in ways otherwise restricted by copyright and certain other
27 | rights. Our licenses are irrevocable. Licensors should read and
28 | understand the terms and conditions of the license they choose
29 | before applying it. Licensors should also secure all rights necessary
30 | before applying our licenses so that the public can reuse the
31 | material as expected. Licensors should clearly mark any material
32 | not subject to the license. This includes other CC-licensed material,
33 | or material used under an exception or limitation to copyright.
34 | [More considerations for
35 | licensors](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors).
36 |
37 | * __Considerations for the public:__ By using one of our public
38 | licenses, a licensor grants the public permission to use the licensed
39 | material under specified terms and conditions. If the licensor’s
40 | permission is not necessary for any reason–for example, because of
41 | any applicable exception or limitation to copyright–then that use
42 | is not regulated by the license. Our licenses grant only permissions
43 | under copyright and certain other rights that a licensor has authority
44 | to grant. Use of the licensed material may still be restricted for
45 | other reasons, including because others have copyright or other
46 | rights in the material. A licensor may make special requests, such
47 | as asking that all changes be marked or described. Although not
48 | required by our licenses, you are encouraged to respect those
49 | requests where reasonable. [More considerations for the
50 | public](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees).
51 |
52 | ## Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License
53 |
54 | By exercising the Licensed Rights (defined below), You accept and
55 | agree to be bound by the terms and conditions of this Creative
56 | Commons Attribution-NonCommercial-ShareAlike 4.0 International
57 | Public License ("Public License"). To the extent this Public License
58 | may be interpreted as a contract, You are granted the Licensed
59 | Rights in consideration of Your acceptance of these terms and
60 | conditions, and the Licensor grants You such rights in consideration
61 | of benefits the Licensor receives from making the Licensed Material
62 | available under these terms and conditions.
63 |
64 | ### Section 1 – Definitions.
65 |
66 | a. __Adapted Material__ means material subject to Copyright and
67 | Similar Rights that is derived from or based upon the Licensed
68 | Material and in which the Licensed Material is translated, altered,
69 | arranged, transformed, or otherwise modified in a manner requiring
70 | permission under the Copyright and Similar Rights held by the
71 | Licensor. For purposes of this Public License, where the Licensed
72 | Material is a musical work, performance, or sound recording, Adapted
73 | Material is always produced where the Licensed Material is synched
74 | in timed relation with a moving image.
75 |
76 | b. __Adapter's License__ means the license You apply to Your Copyright
77 | and Similar Rights in Your contributions to Adapted Material in
78 | accordance with the terms and conditions of this Public License.
79 |
80 | c. __BY-NC-SA Compatible License__ means a license listed at
81 | [creativecommons.org/compatiblelicenses](http://creativecommons.org/compatiblelicenses),
82 | approved by Creative Commons as essentially the equivalent of this
83 | Public License.
84 |
85 | d. __Copyright and Similar Rights__ means copyright and/or similar
86 | rights closely related to copyright including, without limitation,
87 | performance, broadcast, sound recording, and Sui Generis Database
88 | Rights, without regard to how the rights are labeled or categorized.
89 | For purposes of this Public License, the rights specified in Section
90 | 2(b)(1)-(2) are not Copyright and Similar Rights.
91 |
92 | e. __Effective Technological Measures__ means those measures that,
93 | in the absence of proper authority, may not be circumvented under
94 | laws fulfilling obligations under Article 11 of the WIPO Copyright
95 | Treaty adopted on December 20, 1996, and/or similar international
96 | agreements.
97 |
98 | f. __Exceptions and Limitations__ means fair use, fair dealing,
99 | and/or any other exception or limitation to Copyright and Similar
100 | Rights that applies to Your use of the Licensed Material.
101 |
102 | g. __License Elements__ means the license attributes listed in the
103 | name of a Creative Commons Public License. The License Elements of
104 | this Public License are Attribution, NonCommercial, and ShareAlike.
105 |
106 | h. __Licensed Material__ means the artistic or literary work,
107 | database, or other material to which the Licensor applied this
108 | Public License.
109 |
110 | i. __Licensed Rights__ means the rights granted to You subject to
111 | the terms and conditions of this Public License, which are limited
112 | to all Copyright and Similar Rights that apply to Your use of the
113 | Licensed Material and that the Licensor has authority to license.
114 |
115 | h. __Licensor__ means the individual(s) or entity(ies) granting
116 | rights under this Public License.
117 |
118 | i. __NonCommercial__ means not primarily intended for or directed
119 | towards commercial advantage or monetary compensation. For purposes
120 | of this Public License, the exchange of the Licensed Material for
121 | other material subject to Copyright and Similar Rights by digital
122 | file-sharing or similar means is NonCommercial provided there is
123 | no payment of monetary compensation in connection with the exchange.
124 |
125 | j. __Share__ means to provide material to the public by any means
126 | or process that requires permission under the Licensed Rights, such
127 | as reproduction, public display, public performance, distribution,
128 | dissemination, communication, or importation, and to make material
129 | available to the public including in ways that members of the public
130 | may access the material from a place and at a time individually
131 | chosen by them.
132 |
133 | k. __Sui Generis Database Rights__ means rights other than copyright
134 | resulting from Directive 96/9/EC of the European Parliament and of
135 | the Council of 11 March 1996 on the legal protection of databases,
136 | as amended and/or succeeded, as well as other essentially equivalent
137 | rights anywhere in the world.
138 |
139 | l. __You__ means the individual or entity exercising the Licensed
140 | Rights under this Public License. Your has a corresponding meaning.
141 |
142 | ### Section 2 – Scope.
143 |
144 | a. ___License grant.___
145 |
146 | 1. Subject to the terms and conditions of this Public License,
147 | the Licensor hereby grants You a worldwide, royalty-free,
148 | non-sublicensable, non-exclusive, irrevocable license to exercise
149 | the Licensed Rights in the Licensed Material to:
150 |
151 | A. reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and
152 |
153 | B. produce, reproduce, and Share Adapted Material for NonCommercial purposes only.
154 |
155 | 2. __Exceptions and Limitations.__ For the avoidance of doubt,
156 | where Exceptions and Limitations apply to Your use, this Public
157 | License does not apply, and You do not need to comply with its
158 | terms and conditions.
159 |
160 | 3. __Term.__ The term of this Public License is specified in Section 6(a).
161 |
162 | 4. __Media and formats; technical modifications allowed.__ The
163 | Licensor authorizes You to exercise the Licensed Rights in all
164 | media and formats whether now known or hereafter created, and
165 | to make technical modifications necessary to do so. The Licensor
166 | waives and/or agrees not to assert any right or authority to
167 | forbid You from making technical modifications necessary to
168 | exercise the Licensed Rights, including technical modifications
169 | necessary to circumvent Effective Technological Measures. For
170 | purposes of this Public License, simply making modifications
171 | authorized by this Section 2(a)(4) never produces Adapted Material.
172 |
173 | 5. __Downstream recipients.__
174 |
175 | A. __Offer from the Licensor – Licensed Material.__ Every
176 | recipient of the Licensed Material automatically receives
177 | an offer from the Licensor to exercise the Licensed Rights
178 | under the terms and conditions of this Public License.
179 |
180 | B. __Additional offer from the Licensor – Adapted Material.__
181 | Every recipient of Adapted Material from You automatically
182 | receives an offer from the Licensor to exercise the Licensed
183 | Rights in the Adapted Material under the conditions of the
184 | Adapter’s License You apply.
185 |
186 | C. __No downstream restrictions.__ You may not offer or
187 | impose any additional or different terms or conditions on,
188 | or apply any Effective Technological Measures to, the
189 | Licensed Material if doing so restricts exercise of the
190 | Licensed Rights by any recipient of the Licensed Material.
191 |
192 | 6. __No endorsement.__ Nothing in this Public License constitutes
193 | or may be construed as permission to assert or imply that You
194 | are, or that Your use of the Licensed Material is, connected
195 | with, or sponsored, endorsed, or granted official status by,
196 | the Licensor or others designated to receive attribution as
197 | provided in Section 3(a)(1)(A)(i).
198 |
199 | b. ___Other rights.___
200 |
201 | 1. Moral rights, such as the right of integrity, are not licensed
202 | under this Public License, nor are publicity, privacy, and/or
203 | other similar personality rights; however, to the extent possible,
204 | the Licensor waives and/or agrees not to assert any such rights
205 | held by the Licensor to the limited extent necessary to allow
206 | You to exercise the Licensed Rights, but not otherwise.
207 |
208 | 2. Patent and trademark rights are not licensed under this Public
209 | License.
210 |
211 | 3. To the extent possible, the Licensor waives any right to
212 | collect royalties from You for the exercise of the Licensed
213 | Rights, whether directly or through a collecting society under
214 | any voluntary or waivable statutory or compulsory licensing
215 | scheme. In all other cases the Licensor expressly reserves any
216 | right to collect such royalties, including when the Licensed
217 | Material is used other than for NonCommercial purposes.
218 |
219 | ### Section 3 – License Conditions.
220 |
221 | Your exercise of the Licensed Rights is expressly made subject to the following conditions.
222 |
223 | a. ___Attribution.___
224 |
225 | 1. If You Share the Licensed Material (including in modified form), You must:
226 |
227 | A. retain the following if it is supplied by the Licensor with the Licensed Material:
228 |
229 | i. identification of the creator(s) of the Licensed Material
230 | and any others designated to receive attribution, in any
231 | reasonable manner requested by the Licensor (including by
232 | pseudonym if designated);
233 |
234 | ii. a copyright notice;
235 |
236 | iii. a notice that refers to this Public License;
237 |
238 | iv. a notice that refers to the disclaimer of warranties;
239 |
240 | v. a URI or hyperlink to the Licensed Material to the
241 | extent reasonably practicable;
242 |
243 | B. indicate if You modified the Licensed Material and retain
244 | an indication of any previous modifications; and
245 |
246 | C. indicate the Licensed Material is licensed under this
247 | Public License, and include the text of, or the URI or
248 | hyperlink to, this Public License.
249 |
250 | 2. You may satisfy the conditions in Section 3(a)(1) in any
251 | reasonable manner based on the medium, means, and context in
252 | which You Share the Licensed Material. For example, it may be
253 | reasonable to satisfy the conditions by providing a URI or
254 | hyperlink to a resource that includes the required information.
255 |
256 | 3. If requested by the Licensor, You must remove any of the
257 | information required by Section 3(a)(1)(A) to the extent
258 | reasonably practicable.
259 |
260 | b. ___ShareAlike.___
261 |
262 | In addition to the conditions in Section 3(a), if You Share Adapted
263 | Material You produce, the following conditions also apply.
264 |
265 | 1. The Adapter’s License You apply must be a Creative Commons license
266 | with the same License Elements, this version or later, or a BY-NC-SA
267 | Compatible License.
268 |
269 | 2. You must include the text of, or the URI or hyperlink to, the
270 | Adapter's License You apply. You may satisfy this condition in any
271 | reasonable manner based on the medium, means, and context in which
272 | You Share Adapted Material.
273 |
274 | 3. You may not offer or impose any additional or different terms
275 | or conditions on, or apply any Effective Technological Measures to,
276 | Adapted Material that restrict exercise of the rights granted under
277 | the Adapter's License You apply.
278 |
279 | ### Section 4 – Sui Generis Database Rights.
280 |
281 | Where the Licensed Rights include Sui Generis Database Rights that
282 | apply to Your use of the Licensed Material:
283 |
284 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right
285 | to extract, reuse, reproduce, and Share all or a substantial portion
286 | of the contents of the database for NonCommercial purposes only;
287 |
288 | b. if You include all or a substantial portion of the database
289 | contents in a database in which You have Sui Generis Database Rights,
290 | then the database in which You have Sui Generis Database Rights
291 | (but not its individual contents) is Adapted Material, including
292 | for purposes of Section 3(b); and
293 |
294 | c. You must comply with the conditions in Section 3(a) if You Share
295 | all or a substantial portion of the contents of the database.
296 |
297 | For the avoidance of doubt, this Section 4 supplements and does not
298 | replace Your obligations under this Public License where the Licensed
299 | Rights include other Copyright and Similar Rights.
300 |
301 | ### Section 5 – Disclaimer of Warranties and Limitation of Liability.
302 |
303 | a. __Unless otherwise separately undertaken by the Licensor, to the
304 | extent possible, the Licensor offers the Licensed Material as-is
305 | and as-available, and makes no representations or warranties of any
306 | kind concerning the Licensed Material, whether express, implied,
307 | statutory, or other. This includes, without limitation, warranties
308 | of title, merchantability, fitness for a particular purpose,
309 | non-infringement, absence of latent or other defects, accuracy, or
310 | the presence or absence of errors, whether or not known or discoverable.
311 | Where disclaimers of warranties are not allowed in full or in part,
312 | this disclaimer may not apply to You.__
313 |
314 | b. __To the extent possible, in no event will the Licensor be liable
315 | to You on any legal theory (including, without limitation, negligence)
316 | or otherwise for any direct, special, indirect, incidental,
317 | consequential, punitive, exemplary, or other losses, costs, expenses,
318 | or damages arising out of this Public License or use of the Licensed
319 | Material, even if the Licensor has been advised of the possibility
320 | of such losses, costs, expenses, or damages. Where a limitation of
321 | liability is not allowed in full or in part, this limitation may
322 | not apply to You.__
323 |
324 | c. The disclaimer of warranties and limitation of liability provided
325 | above shall be interpreted in a manner that, to the extent possible,
326 | most closely approximates an absolute disclaimer and waiver of all
327 | liability.
328 |
329 | ### Section 6 – Term and Termination.
330 |
331 | a. This Public License applies for the term of the Copyright and
332 | Similar Rights licensed here. However, if You fail to comply with
333 | this Public License, then Your rights under this Public License
334 | terminate automatically.
335 |
336 | b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
337 |
338 | 1. automatically as of the date the violation is cured, provided
339 | it is cured within 30 days of Your discovery of the violation;
340 | or
341 |
342 | 2. upon express reinstatement by the Licensor.
343 |
344 | For the avoidance of doubt, this Section 6(b) does not affect
345 | any right the Licensor may have to seek remedies for Your
346 | violations of this Public License.
347 |
348 | c. For the avoidance of doubt, the Licensor may also offer the
349 | Licensed Material under separate terms or conditions or stop
350 | distributing the Licensed Material at any time; however, doing so
351 | will not terminate this Public License.
352 |
353 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
354 |
355 | ### Section 7 – Other Terms and Conditions.
356 |
357 | a. The Licensor shall not be bound by any additional or different
358 | terms or conditions communicated by You unless expressly agreed.
359 |
360 | b. Any arrangements, understandings, or agreements regarding the
361 | Licensed Material not stated herein are separate from and independent
362 | of the terms and conditions of this Public License.
363 |
364 | ### Section 8 – Interpretation.
365 |
366 | a. For the avoidance of doubt, this Public License does not, and
367 | shall not be interpreted to, reduce, limit, restrict, or impose
368 | conditions on any use of the Licensed Material that could lawfully
369 | be made without permission under this Public License.
370 |
371 | b. To the extent possible, if any provision of this Public License
372 | is deemed unenforceable, it shall be automatically reformed to the
373 | minimum extent necessary to make it enforceable. If the provision
374 | cannot be reformed, it shall be severed from this Public License
375 | without affecting the enforceability of the remaining terms and
376 | conditions.
377 |
378 | c. No term or condition of this Public License will be waived and
379 | no failure to comply consented to unless expressly agreed to by the
380 | Licensor.
381 |
382 | d. Nothing in this Public License constitutes or may be interpreted
383 | as a limitation upon, or waiver of, any privileges and immunities
384 | that apply to the Licensor or You, including from the legal processes
385 | of any jurisdiction or authority.
386 |
387 | > Creative Commons is not a party to its public licenses.
388 | > Notwithstanding, Creative Commons may elect to apply one of its
389 | > public licenses to material it publishes and in those instances
390 | > will be considered the “Licensor.” Except for the limited purpose
391 | > of indicating that material is shared under a Creative Commons
392 | > public license or as otherwise permitted by the Creative Commons
393 | > policies published at
394 | > [creativecommons.org/policies](http://creativecommons.org/policies),
395 | > Creative Commons does not authorize the use of the trademark “Creative
396 | > Commons” or any other trademark or logo of Creative Commons without
397 | > its prior written consent including, without limitation, in connection
398 | > with any unauthorized modifications to any of its public licenses
399 | > or any other arrangements, understandings, or agreements concerning
400 | > use of licensed material. For the avoidance of doubt, this paragraph
401 | > does not form part of the public licenses. > > Creative Commons
402 | > may be contacted at creativecommons.org
403 |
404 |
--------------------------------------------------------------------------------