1. Good CUDA introduction: https://www.olcf.ornl.gov/cuda-training-series/

    1. There’s also a YouTube playlist of the videos, in case you need closed captions: https://www.youtube.com/playlist?list=PL6RdenZrxrw-zNX7uuGppWETdxt_JxdMj
  2. Better resource for explanation of Project 1 code: https://www.youtube.com/watch?v=ga2ML1uGr5o

  3. Use inbuilt VPN utilities if you’re on Linux, for access to PACE:

    <aside> 🛠 “If anyone here is using Linux as their daily driver / for the projects, don't bother downloading GlobalProtect to connect to GT's VPN.

    The app seems like an afterthought on linux, and is not really needed to connect to the VPN.

    If you're on Gnome, just use the built in VPN functionality and you'll be good to go. (Other DEs should probably be similar too)

    Add new VPN > Choose OpenConnect > Identity > Change Name as needed > Change VPN protocol to "Palo Alto Networks GlobalProtect > Enter "vpn.gatech.edu" as the gateway > Add.

    That's it.

    Initial connection might take a try or two but so far it's been working well.

    No need to download any additional bloatware.”

    </aside>

    <aside> 🛠 “Agree with the recommendation for openconnect, you can also run it from the command line:

    sudo openconnect --protocol=gp -u USER vpn.gatech.edu

    Openconnect accepts stdin for the prompts if you're into automation and trust your local security. You don't even have to deal with the hacky CSD wrapper! I usually run it in a screen session so I can see what's happening, but you can add -b if you like.”

    </aside>

  4. Project 2:

    1. https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html

    2. PACE-ICE Documentation: https://gatech.service-now.com/technology?id=kb_article_view&sysparm_article=KB0042102#getting-started-on-ice

    3. GUI: https://ondemand-ice.pace.gatech.edu/

    4. Terminal:

      # login
      # please use your own username instead of George's
      # dude already has too many classes under his belt
      ssh [email protected]
      
      # nodes = Nodes
      # ntasks-per-node = CPU cores per node
      # mem-per-cpu = Memory per core
      # t1:00:00 = Wall time (HH:MM:SS)
      # 16 hours max for GPU jobs
      # CHANGE THE GPU AS PER YOUR REQUIREMENTS (we used V100)
      salloc --nodes=1 --ntasks-per-node=2 --mem-per-cpu=4G --gres=gpu:1 -C V100-32GB -t1:00:00
      
      # check if a GPU has been allocated
      nvidia-smi
      
      # load the CUDA module
      module load cuda gcc/12.3.0
      
  5. Project 5:

    1. Don’t go around looking for external documentation, or listing methods / attributes for variables. It is not required. Files under the ‘sir’ folder should have enough documentation for this project.