- either SSH from a terminal or use an application such as PuTTy
- There are 3 login nodes, but if you don't specify one then you will get first available
ssh -Y username@ls5.tacc.utexas.edu- the
-Yenables X11 forwarding and lets you use guis, i.e. fslview
- the
- DO NOT RUN CODE ON LOGIN NODE
- that being said, I usually feel ok running scripts that move files or generate text files for batch jobs. But, when in doubt, go
idev
- that being said, I usually feel ok running scripts that move files or generate text files for batch jobs. But, when in doubt, go
- everyone gets a Home and Work directory
- when you log in you should see the total space and % used of each
- environment variables are your friend, no settup required
cd $HOMEtakes you to Home, alwayscd $WORKtakes you to Work, always
vimis going to be your friend, whether you like it or not. (steep learning curve)- this is the command line text editor that is easiest to use for quick edits of code when you don't want to go through pulling and pushing from local
lorlswith the different flags-aare useful for seeing whats in a directory,rmto delete things,mvto rename/move things,-Rto delete or move folders
- I use
scpto transfer files and folders. To transfer afolderyou have to have the-rflag, but not for files. - In general, a basic command is
scp -r "from/here" "to/here" - putting a folder onto TACC
scp -r "/Users/ach3377/CCX-bids" ach3377@ls5.tacc.utexas.edu:"/work/ 05426/ach3377/lonestar/CCX-bids"
- From TACC to local
scp -r ach3377@ls5.tacc.utexas.edu:"/work/05426/ach3377/lonestar/CCX-bids/derivatives/fmriprep" "/Users/ach3377/"
- You could use scp as above, but for code I would use
git! - There are tonnes of tutorials for basic usage of git out there, including the coding_club repo on the dunsmoorlab github
- If you ever get an SSL error, try the following
git config --global http.sslverify false
Just to reiterate, this is how I do it, not necessarily the best way.
sometimes, you really need to be able to debug your code in real time. idev jobs allow you to interactively use a compute node for some time
To start an idev session: idev -m 120, where -m is how long you are requesting it for (2hrs is the max)
Its always better to test if something will run in idev first, instead of submitting jobs to test. If your jobs error enough times in a certain time period, you can get penalized by TACC.
I use launch, which I believe can be loaded using module load launcher
The reason I like using launch is that it allows you to very easily create a job that will run code in parallel on multiple different Nodes.
A basic command looks like this:
launch -N 2 -n 4 -J myjobname -s myjob.txt -m myemail@utexas.edu -p normal -r 05:00:00 -A fMRI-Fear-Conditioni
Where the contents of myjob.txt will look like this:
python3 my_script.py -s 1
python3 my_script.py -s 2
python3 my_script.py -s 3
python3 my_script.py -s 4
-nis how many "jobs" or "tasks" you are telling TACC you want to run, andlaunchtakes in exactly 1 line of themyjob.txtas a job- if the number of lines in
myjob.txt>n, the firstnare run, and when one is completed the next is started
- if the number of lines in
-Nis how many Compute Nodes you are requesting. TACC will then attempt to runn/Njobs per Node- each compute node has 24 logical processors, each of which is hyperthreaded, allowing you to use up to 48 logical processors at a time.
- IT IS UP TO YOU TO PARALLIZE YOUR CODE, if you do not, then it may be better to take a "tall" approach, i.e. requesting 1 node with many jobs for a long time
- in this case, I the code in
my_script.pyknows to look for and use mulitple CPUs - I prefer a "wide" approach, i.e. requesting lots of Nodes, often with a ratio of
n/N= 1, and running for short time - Keep in mind that each
Nnode has a set amount of memory. Running a high number ofnperN, such as lots of fsl feats, can easily result in out of memory errors & wasted time
-Jis the name of the job as it will appear on the queue-sis the job text file- make sure that the text file has executable permissions
chmod u+x myjob.txt
-mif you want to get email notifications when your job starts/finishes/errors-ppriority of the job, should always benormal-ris the runtime of the job before it is cut off- always overestimate here, but know that the longer you say you need it for and the more
Nnodes you request will increase the wait time on queue
- always overestimate here, but know that the longer you say you need it for and the more
-Ais the allocation to bill
I just keep 1 launch.sh script around, and then edit the name of the text file and time, and then submit a job sh launch.sh
showqdisplays all current jobs,showq -ufilters for just your jobs- to cancel a job before or while running,
scancel JOBID, where jobid is the # of the job as found in queue