Skip to content

Updating intro materials#9

Open
liz-is wants to merge 1 commit into
mainfrom
components_computer
Open

Updating intro materials#9
liz-is wants to merge 1 commit into
mainfrom
components_computer

Conversation

@liz-is

@liz-is liz-is commented Jun 13, 2025

Copy link
Copy Markdown

(Creating a PR on behalf of @MWyatt2024 so I can more easily add comments!)

@liz-is liz-is linked an issue Jun 13, 2025 that may be closed by this pull request

@liz-is liz-is left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, this will be a really useful reference! My comments are mainly on phrasing or level of detail to include at this stage.

I'm also wondering whether it would be good to split this detailed content out into a new page, and keep the index.md page as a briefer overview including the course prerequisites etc.

Comment thread docs/index.md

The first electronic computers were large, expensive, and difficult to use, and were primarily used by governments and large corporations. Over time, computers have become smaller, faster, and more powerful, and are now used in a wide variety of applications, from personal computing to large-scale data processing. Almost all of modern research now depends on computers in some way, whether it is for data analysis, simulation, or visualization. This has led to the development of High-Performance Computing (HPC) systems, which are designed to handle large-scale computations and data processing tasks.

### What can a computer do?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this would be a good point for an interactive activity! We can ask attendees to suggest what computers can/can't do

Comment thread docs/index.md
* Work without instructions
* Understand the context of the data it is processing

Ultimately, a computer is a tool that can be used to perform tasks, but it is not capable of independent thought or decision-making. It relies on humans to provide it with the necessary instructions and context to carry out its tasks effectively. AI and machine learning are changing this, but they are still limited by the data they are trained on and the algorithms that power them and do not have the same level of understanding or context as a human.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think careful phrasing is important here - AI/ML might be able to do more with more limited instructions, but are not capable of independent thought 😬

Comment thread docs/index.md

### When would you want to use a CPU vs a GPU?
In general, you would want to use a CPU for tasks that require complex logic and decision-making, such as running simulations or processing large datasets. A CPU is designed to handle a wide variety of tasks and can perform complex calculations quickly and accurately.
A GPU, on the other hand, is designed to handle tasks that can be parallelized, such as rendering graphics or training machine learning models. A GPU can perform many calculations simultaneously, making it well-suited for tasks that require a large amount of data processing. This is because a GPU has many more cores than a CPU and, although simpler, allow it to perform many calculations in parallel.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it'd be helpful here to also note limitations of GPUs - i.e. they're not the best solution for all tasks that can be parallelised, but rather specific types of tasks. (I found some good examples here - not come across this material before but it looks helpful!)

Comment thread docs/index.md
* CREATE TRE: Tightly controlled project areas making use of Cloud and HPC resources to process sensitive datasets (e.g. clinical PIID) complying with NHS Digital audit standards (DSPT)
* CREATE Web: A self-service web hosting platform for static content (HTML/CSS/JS) and WordPress sites
## Why do we need parallel computing?
Parallel computing is necessary because many tasks in scientific research and data processing are too complex or time-consuming to be completed on a single processor or computer. By using parallel computing, researchers can take advantage of the processing power of multiple processors or computers to complete tasks more quickly and efficiently. This allows them to tackle larger problems and analyze larger datasets than would be possible with a single processor or computer. For the environmentally conscious researcher, parallel computing can also help to reduce the carbon footprint of research by allowing tasks to be completed more quickly and efficiently, reducing the overall energy consumption of the research process.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

parallel computing can also help to reduce the carbon footprint of research by allowing tasks to be completed more quickly and efficiently

Is this true? 😅 wouldn't overall CPUTime be similar and therefore energy usage similar?

Comment thread docs/index.md
* Data analysis: Large datasets can be processed more quickly using parallel computing, allowing researchers to extract insights and patterns from the data more efficiently.
* Machine learning: Training machine learning models often involves processing large datasets and performing complex calculations, which can be accelerated using parallel computing.

## What is a scheduler and why do we need one?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to add a reference to the restaurant and/or Tetris analogies here?

Comment thread docs/index.md
* Machine learning: Training machine learning models often involves processing large datasets and performing complex calculations, which can be accelerated using parallel computing.

## What is a scheduler and why do we need one?
A scheduler is a software tool that manages the allocation of resources in a HPC system. It is responsible for scheduling jobs to run on the compute nodes, ensuring that resources are used efficiently and that jobs are completed in a timely manner. The scheduler is also responsible for managing the queue of jobs, prioritizing them based on their resource requirements and other factors. For the training workshop, we will be using the Slurm scheduler, which is a widely used open-source job scheduler for HPC systems.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use a word other than "jobs" here? Maybe "computational work"/"computational tasks"?

I'm just conscious that we talk about jobs here but then define a "job" in the following section!

Comment thread docs/index.md
A scheduler is a software tool that manages the allocation of resources in a HPC system. It is responsible for scheduling jobs to run on the compute nodes, ensuring that resources are used efficiently and that jobs are completed in a timely manner. The scheduler is also responsible for managing the queue of jobs, prioritizing them based on their resource requirements and other factors. For the training workshop, we will be using the Slurm scheduler, which is a widely used open-source job scheduler for HPC systems.

## What is a job and what is a job script?
A job is a unit of work that is submitted to the scheduler for execution on the compute nodes. A job can be a single command or a script that contains multiple commands. A job script is a file that contains the commands to be executed, along with any necessary configuration options and resource requirements. The job script is submitted to the scheduler, which then allocates the necessary resources and executes the job on the compute nodes.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might not need to introduce the concept of a job script here - too abstract at this point?

Comment thread docs/index.md
A job is a unit of work that is submitted to the scheduler for execution on the compute nodes. A job can be a single command or a script that contains multiple commands. A job script is a file that contains the commands to be executed, along with any necessary configuration options and resource requirements. The job script is submitted to the scheduler, which then allocates the necessary resources and executes the job on the compute nodes.

## What is a module and why do we need one?
A module is a software tool that allows users to manage the software environment on a HPC system. It provides a way to load and unload software packages, set environment variables, and manage dependencies between different software packages. Modules are used to ensure that the correct versions of software packages are used for a particular job, and to avoid conflicts between different software packages. In the context of this training workshop, we will be using modules to load the necessary software packages for our jobs. On CREATE, we use spack to manage our software environment, which allows us to easily install and manage software packages and their dependencies.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we probably don't need to mention spack here - users won't interact with it directly and it may cause confusion.

Comment thread docs/index.md

!!! Important
For research that has made use of CREATE, please see the [Acknowledging](https://docs.er.kcl.ac.uk/CREATE/acknowledging/) page.
## What workflows benefit from parallel computing?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this is another good point for an interactive activity - we can ask attendees what type of work they are doing and what limitations they've run into using personal machines for this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Introductory slides: add "components of a computer" content

2 participants