Learn Scientific Computing Essentials
Published: 2021-04-30 03:18:45

Supercomputers play an important role in today’s research world. They aid us to solve compute-intensive problems such as physical simulation, climate research, molecular modeling and so on.

## Who wants to Learn Scientific Computing?

- Students who want to improve their career prospects
- Researchers who want to add Scientific and other command line tools to their bag of tricks
-  Scientists who want to learn to explore and analyze the data that their lab generates
-   Journalists who want to polish their reporting by analyzing publicly-available datasets
-  Anyone wants to deal with Big Data

![scp](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s5vuic2ht7nwsttej7ma.png)

## How-to?
[This is the first ever hands-on scientific programming course](https://school.scientificprogramming.io/course/scientific-computing-essentials/5) that uses the High Performance Computing (HPC) systems software stack: Slurm, PBS Pro, OpenMP, MPI and CUDA. The goal main of this course is to introduce you with the HPC systems and its software stack. This course has been specially designed to enable you to utilize parallel & distributed programming and computing resources to accelerate the solution of a complex problem with the help of HPC systems and Supercomputers. You can then use your knowledge in Machine learning, Deep learning, Data Sciences, Big data and so on.

### A PBS Script Example

When you are new to PBS, the place to start is the qsub command, which submits jobs to your HPC systems. The only jobs that the qsubaccepts are scripts, so you’ll need to package your tasks appropriately. Here is a simple example script (myjob.pbs):

```
#!/bin/bash
#PBS -N demo // job name
#PBS -o demo.txt // output file
#PBS -e demo.txt // error output file
#PBS -q workq // queue name
#PBS -l mem=1024mb // requested memory sizempiexec -machinefile /etc/myhosts -np 4 /home/user/area
```

The first line specified the shell to use in interpreting the script, while the next few lines starting with #PBS are directives that are passed to PBS. The first names the job, the next two specify where output and error output go, the next to last identifies the queue that is used, and the last lists a resource that will be needed, in this case 1024 MB of memory. The blank line signals the end of PBS directives. Lines that follow the blank line indicate the actual job (details on the mpi commands are discussed later). Once you have created the batch script for your job, the qsub command is used to submit the job:

```
$ qsub job.pbs
```

## Conclusion

We’ve this special course called [“Scientific Programming Essentials”](https://school.scientificprogramming.io/course/scientific-computing-essentials/5). This course is of the first of its kind, to used as a second step from our previous course “[Learn Practical Data Sciences with Bash Shell](https://school.scientificprogramming.io/course/learn-practical-data-sciences-with-bash-shell/2)”. It will help to enable new research students to utilize parallel and distributed programming and computing to accelerate the solution of their complex problems with the help of High Performance Computing (HPC) systems and Supercomputers.

We think it’s important to learn parallel and distributed computing (right now!) if you wish to do some large-scale data analytics and research works. This learning course should make 
your academic profile shine!

## About
The Scientific Programming School is an interactive educational platform that helps you to learn Linux, Devops, HPC and Scientific programming languages. https://scientificprogramming.io/