forked from HPC-Courses/AMSC-CodeExamples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME.md.orig
More file actions
128 lines (87 loc) · 4.18 KB
/
Copy pathREADME.md.orig
File metadata and controls
128 lines (87 loc) · 4.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<<<<<<< HEAD
EXAMPLES AND EXERCISES FOR AMSC and APSC (PACS) COURSES
--------------------------------------
=======
# EXAMPLES AND EXERCISES FOR THE PACS COURSE
>>>>>>> master
This repo contains source code and descriptions for the examples and exercises
that will be explained during the PACS (Programmazione Avanzata per il Calcolo
Scientifico - Advanced Programming for Scientific Computing) and Advanced Methods for Scientific Computing (AMSC) courses at Politecnico di Milano.
**A NOTE** For the AMSC course, only a subset of the examples will be used at the lectures and labs.
However, I encourage interested students to look at the various examples.
<<<<<<< HEAD
=======
>>>>>>> master
The repository contains git submodules, so to check it out properly, you have to type
```
git clone --recursive https://github.com/HPC-Courses/pacs-examples.git
```
or **(preferably)**
```
git clone --recursive git@github.com:HPC-Courses/pacs-examples.git
```
*In the latter case, you must register your ssh keys on a personal GitHub account*.
<<<<<<< HEAD
To keep your local repo updated with changes upstream do frequently
=======
To keep your local repo updated with changes upstream, do frequently
>>>>>>> master
```
git pull --recurse-submodules
```
or just from this directory,
```
./update.sh
```
The software requires a C++ compiler, i.e., gcc >= 10.0 or clang >= 9.
You may check the version of your compiler with the option -v. Several examples have now been ported to c++17
and some examples of c++20 are being added. Check whether your compile supports those standards. You may have a look
at https://en.cppreference.com/w/cpp/compiler_support
<<<<<<< HEAD
=======
## Module (mk) system ##
In the course, we use the mk module system provided in [this repository](https://github.com/pcafrica/mk_) (nothing to do with girt submodules!). However, this is not strictly required, you can do without, if you have
a recent Linux distribution.
If you use the modules this directory contains some utilities:
** load_modules
>>>>>>> master
You may want to use some IDE. Either [eclipse](https://www.eclipse.org/ide/), [CLion](https://www.jetbrains.com/clion/) or [VisualStudio](https://www.jetbrains.com/clion/). Clion and VisualStudio allow integration with Copilot.
## Directory Contents ##
This directory contains some utilities:
** load_modules
If you use the module (mk) system, by typing
```
source load_modules
```
or
```
. load_modules.sh
```
will load the main modules used in the examples, apart from `hdf5`, which is used only in the example on input-output streams.
## Installing git submodules ##
If you do not have used --recursive when cloning this repo and you want to use
the git submodules containing third-party software type:
```
./install_git_submodules.sh
```
<<<<<<< HEAD
=======
>>>>>>> master
The file submodule_commands.txt contains some reminders of useful git commands for operating with submodules
- `change_submodules_url.sh` changes the protocol of the submodules to https. You should not need it!
- `change_submodules_url_ssh.sh` changes the protocol of the submodules to ssh. You should not need it!
## WHAT DO DO NEXT? ##
- Go to the `Extras/` directory, which contains additional software used by some examples and follow the instructions in the local `README.md` file.
- Go to the `Examples/` directory and follow the instructions in the local `README.md` file.
<<<<<<< HEAD
## What ELSE? ##
If you want the repository of the laboratories of the course, you can clone [this repo](https://github.com/HPC-Courses/AMSC-Labs)
=======
>>>>>>> master
## WHY MAKEFILES? ##
I have used standard makefiles since I find that they allow simpler handling of "disaggregated software", where you have several partially independent examples which share, however, some common features. Indeed porting to `cmake` is possible, but so far it is not planned.
## DISCLAIMER ##
The code in this repository is just a collection of examples. Some of them are rather complete and may form the basis of derivative work. You are free to use them at your wish (give credits please), but remember that I do not make any claim on their suitability for your work, nor that they are free of bugs.
<<<<<<< HEAD
=======
>>>>>>> master