Skip to content

parsed mds by for chatbot parser script for account.md, connecting.md, compiling_your_software.md (FOR REVIEW ONLY, NO MERGE!) #664

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 148 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
1ebc363
initial commit
EwDa291 Aug 8, 2024
34df842
Merge branch 'hpcugent:main' into chatbot_parser
EwDa291 Aug 8, 2024
10edb20
some cleanup
EwDa291 Aug 8, 2024
85a93ec
used jinja to replace macros
EwDa291 Aug 9, 2024
dfff5fa
adapt if-mangler to accommodate for nested if-clauses
EwDa291 Aug 9, 2024
649ddec
adapt the parser to take all files as input, not all files get parsed…
EwDa291 Aug 9, 2024
2116d6e
adapt the parser to take all files as input, not all files get parsed…
EwDa291 Aug 9, 2024
159aa62
small update, not important
EwDa291 Aug 9, 2024
75765e5
change to the templates
EwDa291 Aug 9, 2024
57d9cfe
change to accommodate for more nested if-clauses
EwDa291 Aug 9, 2024
75d345b
Delete scripts/HPC chatbot preprocessor/start_checker.py
EwDa291 Aug 9, 2024
ff7a9fc
make sure files with duplicate names between normal files and linux-t…
EwDa291 Aug 12, 2024
47a33b7
Merge branch 'chatbot_parser' of https://github.com/EwDa291/vsc_user_…
EwDa291 Aug 12, 2024
7d279d6
fixed the problem of some files being written in reST instead of mark…
EwDa291 Aug 12, 2024
8047572
some small fixes
EwDa291 Aug 12, 2024
7d1c5ed
remove try-except-structure
EwDa291 Aug 13, 2024
984b0cd
collapse all code into one file
EwDa291 Aug 13, 2024
8f5eeaa
Rename file
EwDa291 Aug 13, 2024
2b97b7a
cleanup repository
EwDa291 Aug 13, 2024
b595301
Rename directory
EwDa291 Aug 13, 2024
90c8ab7
add a main function
EwDa291 Aug 13, 2024
b8ae706
make file paths non os-specific
EwDa291 Aug 13, 2024
b751497
use docstrings to document the functions
EwDa291 Aug 13, 2024
0f8eb5d
rewrite the if-mangler to make it more readable
EwDa291 Aug 13, 2024
9938e92
got rid of most global variables
EwDa291 Aug 13, 2024
508b22c
fixed some issues with if statements
EwDa291 Aug 13, 2024
a25ce2d
fixed some issues with if statements
EwDa291 Aug 13, 2024
80d0535
got rid of all global variables
EwDa291 Aug 13, 2024
9163a75
small changes to make file more readable
EwDa291 Aug 14, 2024
1dcffc1
codeblocks, tips, warnings and info reformatted
EwDa291 Aug 14, 2024
4d7fbdb
small optimisations
EwDa291 Aug 14, 2024
671f7f3
small optimisations
EwDa291 Aug 14, 2024
e5c39bd
initial commit
EwDa291 Aug 14, 2024
c6492fc
added requirements
EwDa291 Aug 14, 2024
aff8198
added requirements and usage info
EwDa291 Aug 14, 2024
a981002
minor changes to the print statements
EwDa291 Aug 14, 2024
1f3b343
reworked function to take care of html structures
EwDa291 Aug 16, 2024
b6388d3
Merge branch 'hpcugent:main' into chatbot_parser
EwDa291 Aug 16, 2024
48cad97
filter out images
EwDa291 Aug 16, 2024
df58f23
get rid of backquotes, asterisks, pluses and underscores used for for…
EwDa291 Aug 16, 2024
c423e07
dump to json files instead of txt files
EwDa291 Aug 16, 2024
2c333fe
cleaned up parser with macros
EwDa291 Aug 16, 2024
ce52352
cleaned up parser with macros
EwDa291 Aug 16, 2024
5db34af
cleaned up parser with macros
EwDa291 Aug 16, 2024
4226d28
Update README.md
EwDa291 Aug 19, 2024
d730a26
Update README.md
EwDa291 Aug 19, 2024
f3182e3
added section about restrictions on input files
EwDa291 Aug 19, 2024
aee54de
Merge branch 'hpcugent:main' into chatbot_parser
EwDa291 Aug 19, 2024
675bec5
adapted section about restrictions on input files
EwDa291 Aug 19, 2024
f1e58ef
adapted section about restrictions on input files
EwDa291 Aug 19, 2024
2bf1075
Merge branch 'chatbot_parser' of https://github.com/EwDa291/vsc_user_…
EwDa291 Aug 19, 2024
a168509
change variables to be lowercase
EwDa291 Aug 19, 2024
09b86c9
take out some copy pasting
EwDa291 Aug 19, 2024
f95b99e
added warning about long filepaths
EwDa291 Aug 19, 2024
06bb7b9
fixing typos
EwDa291 Aug 19, 2024
2f3e5b3
take out copy pasting
EwDa291 Aug 19, 2024
0c4dbe8
first draft version of the restructured script to accommodate for the…
EwDa291 Aug 20, 2024
38c4572
added support to filter out collapsable admonitions
EwDa291 Aug 20, 2024
5cbd653
attempt at fix for problems with jinja include, not working yet
EwDa291 Aug 20, 2024
0e6f8b2
fixed an issue with jinja templates
EwDa291 Aug 21, 2024
cd77837
added docstrings to new functions
EwDa291 Aug 21, 2024
98eb695
only add necessary if-statements in front of non-if-complete sections
EwDa291 Aug 21, 2024
27457e3
fixed some more jinja problems
EwDa291 Aug 21, 2024
bb72287
implemented extra test to make sure generic files dont accidentally g…
EwDa291 Aug 21, 2024
67cb19e
make sure empty os-specific files are not saved
EwDa291 Aug 21, 2024
cf9834a
clean up unused code
EwDa291 Aug 21, 2024
da32459
introduce more macros
EwDa291 Aug 21, 2024
093200b
reintroduce logic to remove unnecessary directories
EwDa291 Aug 21, 2024
5d0ffe9
added functionality to include links or leave them out
EwDa291 Aug 21, 2024
a3e34a9
added functionality to include links or leave them out
EwDa291 Aug 21, 2024
7c6154b
adapt filenames to allow for splitting on something other than subtitles
EwDa291 Aug 21, 2024
8d5b50d
making some changes to prepare to add paragraph level splitting tomorrow
EwDa291 Aug 21, 2024
0c10376
making some changes to prepare to add paragraph level splitting tomorrow
EwDa291 Aug 21, 2024
f8ee860
making some changes to prepare to add paragraph level splitting tomorrow
EwDa291 Aug 21, 2024
6533733
adapted the parsing script to allow for testing in a semi-efficient way
EwDa291 Aug 21, 2024
2e7a00f
added test for make_valid_title
EwDa291 Aug 21, 2024
f5e0579
removed useless lines from testscript
EwDa291 Aug 21, 2024
6757b4f
First attempt at splitting in paragraphs (need for other fixes for ti…
EwDa291 Aug 22, 2024
6d9558d
make two functions for different ways of dividing the text
EwDa291 Aug 22, 2024
2c7025a
added docstrings to new functions
EwDa291 Aug 22, 2024
ae99bb9
update test for valid titles
EwDa291 Aug 22, 2024
084b421
fixed problem with splitting os-specific text (metadata not fixed yet)
EwDa291 Aug 22, 2024
cf7f5f0
fix for metadata of os-specific sections
EwDa291 Aug 22, 2024
b7c10d3
clean up temporary version
EwDa291 Aug 22, 2024
4a441f3
added command line options for custom macros
EwDa291 Aug 22, 2024
662134f
small fix to macros
EwDa291 Aug 22, 2024
05eab4a
clean up test for valid title
EwDa291 Aug 22, 2024
b85a8fb
add a test for write_metadata
EwDa291 Aug 22, 2024
39a3c99
added functionality to split on paragraphs
EwDa291 Aug 23, 2024
af9e6cc
clean up
EwDa291 Aug 23, 2024
f4163a7
clean up
EwDa291 Aug 23, 2024
833f964
further clean up and added shebang
EwDa291 Aug 23, 2024
79b1a56
clean up
EwDa291 Aug 23, 2024
cec154c
added test for if mangler
EwDa291 Aug 23, 2024
2f4a277
clean up
EwDa291 Aug 23, 2024
cd0c8eb
clean up customizable options
EwDa291 Aug 23, 2024
3be262a
further adapt the script to be able to test it
EwDa291 Aug 26, 2024
1d32aab
make changes to usage in command line to be more intuitive
EwDa291 Aug 26, 2024
5902c96
first revised version of the README
EwDa291 Aug 26, 2024
6f97d5f
Merge branch 'hpcugent:main' into chatbot_parser
EwDa291 Aug 26, 2024
6e48800
added docstring to main function
EwDa291 Aug 26, 2024
0bc440b
include chatbot_prepprocessor
EwDa291 Aug 26, 2024
e6e6023
added options for source and destination directories
EwDa291 Aug 26, 2024
a6d99d9
cleanup
EwDa291 Aug 26, 2024
2be834f
cleanup
EwDa291 Aug 26, 2024
532543a
cleanup
EwDa291 Aug 26, 2024
107464e
relocate test files
EwDa291 Aug 26, 2024
dd64381
update arguments of if mangler
EwDa291 Aug 26, 2024
ef3fd58
relocate full test files
EwDa291 Aug 26, 2024
4d7db8f
Revert "update arguments of if mangler"
EwDa291 Aug 26, 2024
df9bac5
Revert "relocate full test files"
EwDa291 Aug 26, 2024
631d9e9
update test to adapt to new arguments in if mangler
EwDa291 Aug 26, 2024
c6e600d
relocated full test files
EwDa291 Aug 26, 2024
d1c6194
Rename test_paragraph_split_1.md to test_paragraph_split_1_input.md
EwDa291 Aug 26, 2024
695ffd6
Rename test_title_split_1.md to test_title_split_1_input.md
EwDa291 Aug 26, 2024
af4832b
smal fix
EwDa291 Aug 26, 2024
8805c8c
test text for paragraph split
EwDa291 Aug 26, 2024
a265ffd
start of a fix for double title problem, not done yet
EwDa291 Aug 26, 2024
6c2a61c
Fix for double title bug when splitting on paragraph
EwDa291 Aug 27, 2024
ed08879
Fix bug for empty linklist in metadata
EwDa291 Aug 27, 2024
176af13
fix bug where too many directories were sometimes created
EwDa291 Aug 27, 2024
d4ceac8
test of full script, test files not ready to be pushed yet
EwDa291 Aug 27, 2024
815a863
updated requirements.txt
EwDa291 Aug 27, 2024
d15469f
updated docstring in main function
EwDa291 Aug 27, 2024
daa6b36
add support for comments for the bot to be included in the source files
EwDa291 Aug 27, 2024
4c19f44
changed the default for min paragraph length
EwDa291 Aug 27, 2024
9a6ff58
added test files for full script test
EwDa291 Aug 27, 2024
56543f0
small fix for double title bug
EwDa291 Aug 27, 2024
52a3861
added examples of output of the script when splitting on paragraphs w…
EwDa291 Aug 27, 2024
692e77b
fix for issue with html links
EwDa291 Aug 27, 2024
7f493a1
fix for issue with html links
EwDa291 Aug 27, 2024
0e34396
fix for issue with relative links to the same document
EwDa291 Aug 27, 2024
fa00044
added test for replace_markdown_markers
EwDa291 Aug 27, 2024
b3952b2
fix to small inconsistency in metadata
EwDa291 Aug 27, 2024
73072bf
added test for insert_links
EwDa291 Aug 27, 2024
3161309
make sure paragraphs only include full lists
EwDa291 Aug 28, 2024
7d4d7f9
Merge branch 'hpcugent:main' into chatbot_parser
EwDa291 Aug 28, 2024
3407be3
adapted to the new source files
EwDa291 Aug 28, 2024
6d04bbc
add source-directory to metadata and verbose mode
EwDa291 Aug 28, 2024
f33cfb3
added verbose mode
EwDa291 Aug 28, 2024
1c389d7
Merge branch 'hpcugent:main' into chatbot_parser
EwDa291 Aug 28, 2024
3227f19
Added limitation on lists
EwDa291 Aug 29, 2024
67aed53
fix for non os-specific if-statement not being recognised
EwDa291 Aug 29, 2024
9e297b1
new test for links
EwDa291 Aug 29, 2024
b6b8610
new test to make sure lists are kept as one section
EwDa291 Aug 29, 2024
57a2139
updated test_file for list test
EwDa291 Aug 29, 2024
170a10c
dropped <> around links and started new function to calculate length …
EwDa291 Aug 30, 2024
f279701
strip out code & co so only parsed MDs for selected pages remain
boegel Aug 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Getting an HPC Account
Getting ready to request an account
All users of AUGent can request
an
account on the HPC, which is part of the Flemish Supercomputing Centre (VSC).
See HPC policies for more information on who is entitled to an account.
The VSC, abbreviation of Flemish Supercomputer Centre, is a virtual
supercomputer centre. It is a partnership between the five Flemish
associations: the Association KU Leuven, Ghent University Association,
Brussels University Association, Antwerp University Association and the
University Colleges-Limburg. The VSC is funded by the Flemish
Government.
There are two methods for connecting to HPC-UGent infrastructure:
Copy link
Member

Choose a reason for hiding this comment

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

ok, to make sense of this text: i propose to insert a title here (like the How do SSH keys work? ) called Web portal or SSH. tenenkrullend

- Using a terminal to connect via SSH.
- Using the web portal
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
After you have uploaded your public key you will receive an e-mail with
a link to confirm your e-mail address. After confirming your e-mail
address the VSC staff will review and if applicable approve your
account.
Welcome e-mail
Within one day, you should receive a Welcome e-mail with your VSC
account details.
Dear (Username),
Your VSC-account has been approved by an administrator.
Your vsc-username is vsc40000
Your account should be fully active within one hour.
To check or update your account information please visit
https://account.vscentrum.be/
For further info please visit https://www.vscentrum.be/user-portal
Kind regards,
-- The VSC administrators
Now, you can start using the HPC. You can always look up your VSC id later
by visiting <https://account.vscentrum.be>.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"main_title": "account",
"subtitle": "Welcome-e-mail",
"source_file": "../../mkdocs/docs/HPC/account.md",
"title_depth": 3,
"directory": "account",
"parent_title": "",
"previous_title": "account_paragraph_9",
"next_title": "account_paragraph_11",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/account/#welcome-e-mail"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Computation Workflow on the HPC
A typical Computation workflow will be:
1. Connect to the HPC
2. Transfer your files to the HPC
3. Compile your code and test it
4. Create a job script
5. Submit your job
6. Wait while
1. your job gets into the queue
Copy link
Member

Choose a reason for hiding this comment

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

what is this supposed to mean? gets -> sits?

2. your job gets executed
Copy link
Member

Choose a reason for hiding this comment

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

gets executed -> executes

3. your job finishes
7. Move your results
We'll take you through the different tasks one by one in the following
chapters.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"main_title": "account",
"subtitle": "Computation-Workflow-on-the-HPC",
"source_file": "../../mkdocs/docs/HPC/account.md",
"title_depth": 2,
"directory": "account",
"parent_title": "",
"previous_title": "account_paragraph_11",
"next_title": null,
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/account/#computation-workflow-on-the-hpc"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"main_title": "account",
"subtitle": "Getting-ready-to-request-an-account",
"source_file": "../../mkdocs/docs/HPC/account.md",
"title_depth": 2,
"directory": "account",
"links": {
"0": "https://docs.hpc.ugent.be/sites/hpc_policies",
"1": "https://docs.hpc.ugent.be/web_portal"
},
"parent_title": "",
"previous_title": null,
"next_title": "account_paragraph_2",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/account/#getting-ready-to-request-an-account"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
The web portal offers a convenient way to upload files and gain shell access to the HPC-UGent infrastructure from a standard web browser (no software installation or configuration required).
Copy link
Member

Choose a reason for hiding this comment

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

this is also a bit of a mess, but the source doesn't help.

If you would like use a terminal with SSH as this gives you more flexibility continue reading.
However if you prefer to use the web portal, you can skip ahead to the following section: Applying for the account.
Once you have successfully obtained an account, you can then delve into the details of utilizing the HPC-UGent web portal by reading Using the HPC-UGent web portal.
Copy link
Member

Choose a reason for hiding this comment

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

is it possible to provide some auto mated way to convert the reference to the section with something more clear:

eg ... by reading Using ... -> ... by reading section "Using ..." (not sure what the impact of the quotes is; possibly nothing, but the section might help).

The HPC-UGent infrastructure clusters use public/private key pairs for user authentication
Copy link
Member

Choose a reason for hiding this comment

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

content wise: this is only for ssh access

(rather than passwords). Technically, the private key is stored on your
local computer and always stays there; the public key is stored on the HPC.
Access to the HPC is granted to anyone who can prove to have access to the
corresponding private key on his local computer.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"main_title": "account",
"subtitle": "Getting-ready-to-request-an-account",
"source_file": "../../mkdocs/docs/HPC/account.md",
"title_depth": 2,
"directory": "account",
"links": {
"0": "https://docs.hpc.ugent.be/account/#applying-for-the-account",
"1": "https://docs.hpc.ugent.be/web_portal"
},
"parent_title": "",
"previous_title": "account_paragraph_1",
"next_title": "account_paragraph_3",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/account/#getting-ready-to-request-an-account"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
How do SSH keys work?
- an SSH public/private key pair can be seen as a lock and a key
- the SSH public key is equivalent with a lock: you give it to the
VSC and they put it on the door that gives access to your account.
Copy link
Member

Choose a reason for hiding this comment

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

door -> (public) door? needs some link between public and the door. maybe frontdoor? peopel should now what a voordeur is, i guess

- the SSH private key is like a physical key: you don't hand it out
to other people.
- anyone who has the key (and the optional password) can unlock the
Copy link
Member

Choose a reason for hiding this comment

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

ah yes, make it more confsing by throwing in a previously unmentioned password

door and log in to the account.
- the door to your VSC account is special: it can have multiple
locks (SSH public keys) attached to it, and you only need to open
one lock with the corresponding key (SSH private key) to open
the door (log in to the account).
Copy link
Member

Choose a reason for hiding this comment

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

i would add a pargrpah to explain what an optional but recommend password means. it's like a safe at home where you keep the key to open the door from work

Since all VSC clusters use Linux as their main operating system, you
Copy link
Member

Choose a reason for hiding this comment

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

has nothing to do with ssh keys

will need to get acquainted with using the command-line interface and
using the terminal (see tutorial).
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"main_title": "account",
"subtitle": "How-do-SSH-keys-work",
"source_file": "../../mkdocs/docs/HPC/account.md",
"title_depth": 3,
"directory": "account",
"links": {
"0": "https://docs.hpc.ugent.be/linux-tutorial"
},
"parent_title": "",
"previous_title": "account_paragraph_2",
"next_title": "account_paragraph_4",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/account/#how-do-ssh-keys-work"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Applying for the account
Visit <https://account.vscentrum.be/>
You will be redirected to our WAYF (Where Are You From) service where
you have to select your "Home Organisation".
Select "UGent" in the dropdown box and optionally select "Save my preference"
Copy link
Member

Choose a reason for hiding this comment

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

remove the and optionally .... this not true anymore

Copy link
Member

Choose a reason for hiding this comment

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

also new screenshot

and "permanently".
Click "Confirm"
You will now be taken to the authentication page of your institute.
You will now have to log in with CAS using your UGent account.
Copy link
Member

Choose a reason for hiding this comment

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

with CAS remove it? or explain it

Copy link
Member

Choose a reason for hiding this comment

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

CAS -> CAS (Central Authentication Service)?

You either have a login name of maximum 8 characters, or a (non-UGent)
email address if you are an external user. In case of problems with your
UGent password, please visit: <https://password.ugent.be/>. After
Copy link
Member

Choose a reason for hiding this comment

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

@EwDa291 remove the < and > . not sure what the : is for

logging in, you may be requested to share your information. Click "Yes,
continue".
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"main_title": "account",
"subtitle": "Applying-for-the-account",
"source_file": "../../mkdocs/docs/HPC/account.md",
"title_depth": 2,
"directory": "account",
"parent_title": "",
"previous_title": "account_paragraph_7",
"next_title": "account_paragraph_9",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/account/#applying-for-the-account"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Compiling and testing your software on the HPC
All nodes in the HPC cluster are running the "RHEL 8.8 (accelgor, doduo, donphan, gallade, joltik, skitty)"
Copy link
Member

Choose a reason for hiding this comment

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

what happened with the double quotes?, not needed to include the clusters i think

Operating system, which is a specific version of Red Hat Enterprise Linux. This means that all the
Copy link
Member

Choose a reason for hiding this comment

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

no capital O i guess (or add one to System)?

software programs
(executable) that the end-user wants to run on the HPC first must be
Copy link
Member

Choose a reason for hiding this comment

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

executables

compiled for RHEL 8.8 (accelgor, doduo, donphan, gallade, joltik, skitty). It also means that you first have to install all the
Copy link
Member

Choose a reason for hiding this comment

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

is there a macro for rhel without the clusters? or have value RHEL 8.8 (on clusters ...)

required external software packages on the HPC.
Most commonly used compilers are already pre-installed on the HPC and can be
used straight away. Also, many popular external software packages, which
are regularly used in the scientific community, are also pre-installed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
The "mpi_hello.c" program is a simple source file, written in C with MPI
library calls.
Then, check the command line options for *"mpicc" (GNU C-Compiler with
MPI extensions)*, then we compile and list the contents of the directory
again:
mpicc --help
mpicc -o mpihello mpihello.c
ls -l
A new file "hello" has been created. Note that this program has
"execute" rights.
Let's test this program on the "login" node first:
$ ./mpihello
Hello World from Node 0.
It seems to work, now run it on the HPC.
qsub mpihello.pbs
Compiling a parallel program in Intel Parallel Studio Cluster Edition
We will now compile the same program, but using the Intel Parallel
Studio Cluster Edition compilers. We stay in the examples directory for
this chapter:
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"main_title": "compiling_your_software",
"subtitle": "Compiling-a-parallel-program-in-Intel-Parallel-Studio-Cluster-Edition",
"title_depth": 3,
"directory": "compiling_your_software",
"parent_title": "",
"previous_title": "compiling_your_software_paragraph_9",
"next_title": "compiling_your_software_paragraph_11",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/compiling_your_software/#compiling-a-parallel-program-in-intel-parallel-studio-cluster-edition"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
cd ~/examples/Compiling-and-testing-your-software-on-the-HPC
We will compile this C/MPI -file into an executable with the Intel
Parallel Studio Cluster Edition. First, clear the modules (purge) and
then load the latest "intel" module:
module purge
module load intel
Then, compile and list the contents of the directory again. The Intel
equivalent of mpicc is mpiicc.
mpiicc -o mpihello mpihello.c
ls -l
Note that the old "mpihello" file has been overwritten. Let's test this
program on the "login" node first:
$ ./mpihello
Hello World from Node 0.
It seems to work, now run it on the HPC.
qsub mpihello.pbs
Note: The AUGent only has a license for the Intel Parallel Studio Cluster
Edition for a fixed number of users. As such, it might happen that you
have to wait a few minutes before a floating license becomes available
for your use.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"main_title": "compiling_your_software",
"subtitle": "Compiling-a-parallel-program-in-Intel-Parallel-Studio-Cluster-Edition",
"title_depth": 3,
"directory": "compiling_your_software",
"parent_title": "",
"previous_title": "compiling_your_software_paragraph_10",
"next_title": "compiling_your_software_paragraph_12",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/compiling_your_software/#compiling-a-parallel-program-in-intel-parallel-studio-cluster-edition"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Note: The Intel Parallel Studio Cluster Edition contains equivalent
compilers for all GNU compilers. Hereafter the overview for C, C++ and
Fortran compilers.
| | Sequential Program | | **Parallel Program (with MPI)** | |
Copy link
Member

Choose a reason for hiding this comment

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

this table needs some explanation if you want to keep it around

|-------------|------------------------|-----------|---------------------------------|-----------|
| | GNU | Intel | GNU | Intel |
| C | gcc | icc | mpicc | mpiicc |
| **C++** | g++ | icpc | mpicxx | mpiicpc |
| Fortran | gfortran | ifort | mpif90 | mpiifort |
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"main_title": "compiling_your_software",
"subtitle": "Compiling-a-parallel-program-in-Intel-Parallel-Studio-Cluster-Edition",
"title_depth": 3,
"directory": "compiling_your_software",
"parent_title": "",
"previous_title": "compiling_your_software_paragraph_11",
"next_title": null,
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/compiling_your_software/#compiling-a-parallel-program-in-intel-parallel-studio-cluster-edition"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"main_title": "compiling_your_software",
"subtitle": "Compiling-and-testing-your-software-on-the-HPC",
"title_depth": 1,
"directory": "compiling_your_software",
"parent_title": "",
"previous_title": null,
"next_title": "compiling_your_software_paragraph_2",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/compiling_your_software/#compiling-and-testing-your-software-on-the-hpc"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Check the pre-installed software on the HPC
In order to check all the available modules and their version numbers,
which are pre-installed on the HPC enter:
When your required application is not available on the HPC please contact
any HPC member. Be aware of potential "License Costs". "Open Source"
software is often preferred.
Porting your code
To port a software-program is to translate it from the operating system in
which it was developed (e.g., Windows 7) to another operating system
(e.g., Red Hat Enterprise Linux on our HPC) so that it can be used there. Porting implies some
degree of effort, but not nearly as much as redeveloping the program in
the new environment. It all depends on how "portable" you wrote your
code.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"main_title": "compiling_your_software",
"subtitle": "Porting-your-code",
"title_depth": 2,
"directory": "compiling_your_software",
"parent_title": "",
"previous_title": "compiling_your_software_paragraph_1",
"next_title": "compiling_your_software_paragraph_3",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/compiling_your_software/#porting-your-code"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
In the simplest case the file or files may simply be copied from one
machine to the other. However, in many cases the software is installed
on a computer in a way, which depends upon its detailed hardware,
software, and setup, with device drivers for particular devices, using
installed operating system and supporting software components, and using
different directories.
In some cases software, usually described as "portable software" is
specifically designed to run on different computers with compatible
operating systems and processors without any machine-dependent
installation; it is sufficient to transfer specified directories and
their contents. Hardware- and software-specific information is often
stored in configuration files in specified locations (e.g., the registry
on machines running MS Windows).
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"main_title": "compiling_your_software",
"subtitle": "Porting-your-code",
"title_depth": 2,
"directory": "compiling_your_software",
"parent_title": "",
"previous_title": "compiling_your_software_paragraph_2",
"next_title": "compiling_your_software_paragraph_4",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/compiling_your_software/#porting-your-code"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Software, which is not portable in this sense, will have to be
transferred with modifications to support the environment on the
destination machine.
Whilst programming, it would be wise to stick to certain standards
(e.g., ISO/ANSI/POSIX). This will ease the porting of your code to other
platforms.
Porting your code to the RHEL 8.8 (accelgor, doduo, donphan, gallade, joltik, skitty) platform is the responsibility of the end-user.
Compiling and building on the HPC
Compiling refers to the process of translating code written in some
programming language, e.g., Fortran, C, or C++, to machine code.
Building is similar, but includes gluing together the machine code
resulting from different source files into an executable (or library).
The text below guides you through some basic problems typical for small
software projects. For larger projects it is more appropriate to use
makefiles or even an advanced build system like CMake.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"main_title": "compiling_your_software",
"subtitle": "Compiling-and-building-on-the-HPC",
"title_depth": 2,
"directory": "compiling_your_software",
"parent_title": "",
"previous_title": "compiling_your_software_paragraph_3",
"next_title": "compiling_your_software_paragraph_5",
"OS": "generic",
"reference_link": "https://docs.hpc.ugent.be/compiling_your_software/#compiling-and-building-on-the-hpc"
}
Loading
Loading