Usage of Gadi#
We are extremely fortunate to have been given access to Gadi in this course. Please use the machine with respect. CPU time is also limited collectively over the entire group. This means a single user can exhaust all the time of the entire group. Thus please ensure your usage is no more than necessary. In particular, please also read carefully the usage policy of this precious resource here.
The biggest risk is when a batch job has no wall clock time limit set and gets `stuck’ (e.g. on an MPI messaging generated-deadlock). In order to avoid this, please:
- Test that your code works correctly in the interactive node before submitting a batch job to the queue. 20 processes or less should be large enough to expose any bugs.
- Ensure that you always set a modest time limit in your batch file, e.g.
#PBS -l walltime=00:00:30The above specifies a 30 seconds wall clock time limit (this is a very long time on a GHz machine!). For the purposes of the assignments and labs set this year, this should be plenty!
Access and usage of stugpu2.anu.edu.au (GPU Programming with CUDA)#
IMPORTANT: for Lab 6 and Assignment 2, we will use stugpu2.anu.edu.au, which you can access using your ANU id: ssh <uid>@stugpu2.anu.edu.au and password when prompted. Similarly to partch.anu.edu.au, it mounts your CS Linux Labs home directory. Note: due to firewall issues, you may need to connect via the ANU Global Protect VPN
Gitlab Usage#
Forking a copy of the assignment repo into your user space on GitLab#
- Go to the assignment’s GitLab project URL, e.g. https://gitlab.cecs.anu.edu.au/comp4300/2024/comp4300-assignment1
- Click
Fork - Go to your own version of the forked project, e.g. https://gitlab.cecs.anu.edu.au/u9999999/comp4300-assignment1,
where
u9999999is your GitLab username (and ANU id). - Check that the project is
Private(it should be by default). - If not, click on the project’s settings icon, select
Edit Project, checkPrivateon Visibility Level - Click on project’s settings icon, select
Members. You should see thatcomp4300-2024-s1-markerhas automatically been added as a Maintainer (if not, add it!). If the marker account is not added, we cannot mark your assignment!
Note: the project settings icon should appear on the top right, below the GitLab settings icon (to right of Project …. Wiki tabs). If you can’t see the project settings icon, try widening the browser window or decreasing the browser font size.
Cloning a copy of your project to work on#
- Set up your ssh keys from each computer you wish to clone from in the GitLab web interface. Instructions available here.
- To this end, go to your GitLab user menu (top and far right) and click
Settings. - On the sub-menu (on the left), select the (add ssh) key icon. Follow the directions from there. Note that the
gitcommand-line interface both identifies you and authenticates you by ssh key. - Log in to the desired machine and get a shell in the directory you want to check out your assignment.
- Then do:
git clone git@gitlab.cecs.anu.edu.au:u9999999/comp4300-assignment1where
u9999999is your GitLab username (and ANU id). - From here, you will be able to work on the assignment files.
- For example, for Assignment 1, each time you want to register your progress, you would do:
git add parAdvect.c ps-ass1Rep.pdf git commit git push- The
git addcommand informs git which files to add to the next commit, thegit commitcreates a new commit, and thegit pushsends the commit changes to the remote GitLab project. - The
git pushcommand can be called as many times as desired (it will be a useful backup of your work). - The last push should be performed before the assignment deadline - this version of the files will be the one that is marked.
- Finally, check your submission. Go to your own version of the forked project, e.g. https://gitlab.cecs.anu.edu.au/u9999999/comp4300-assignment1 and check
that everything is fine there, e.g. that
parAdvect.candps-ass1Rep.pdfare in fact the latest versions.
- The
Cloning your project on multiple machines#
- You may find it useful to clone your GitLab project files on multiple machines, e.g. your own laptop and another computer from which you produce your report file.
- The same clone command can be used in both machines to get the files from the GitLab’s remote repository.
- However, before you update any of your assignment files on a given machine, it is highly recommended that you do a
git pullto get updates from anygit pushon the other system. Otherwise,gitmight detect a conflict whenever it tries to automerge clashing changes performed in both machines to the same file (and conflict might be hard to resolve!).