⇤ ← Revision 1 as of 2025-09-18 10:56:03
Size: 3254
Comment:
|
Size: 3727
Comment: Add anchors, static binary test step
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
<<LaTeXMathSetup()>> |
|
Line 7: | Line 10: |
1. "Pull" the course Docker image at https://hub.docker.com/r/khellmanatmines/sim-student, and do their development and testing on a virtual machine. | 1. <<Anchor(dockerimage)>>"Pull" the course Docker image at https://hub.docker.com/r/khellmanatmines/sim-student, and do their development and testing on a virtual machine. |
Line 52: | Line 55: |
1. Use their own Linux environment with the course's grading scripts and utils installed within it. | 1. <<Anchor(linuxhost)>>Students can use their own Linux environment with the course's grading scripts and utils installed within it. |
Line 63: | Line 66: |
1. Lastly, you ''could'' simply develop your code on a non-Linux box, and package it up appropriately in a ZIP for submission. But you won't be able to easily run the project's "grader script" so your test-debug-edit cycle is going to be painful. I do '''not''' recommend this approach, but if you choose to develop this way you will most certainly want the downloads from [[Assignments/TraceFiles|the trace files page]]. | a. And make sure the binaries work {{{#!plain $ /your/path/to/somewhere//SIMGRADING/Random 423 | head -n 3 0.53229350689799 0.91892032278702 0.11796685447916 }}} All the binaries should be built with static linking to avoid shared library dependencies. If you find one that causes problems, please let the instructor know ASAP. 1. <<Anchor(nonlinux)>>Lastly, you ''could'' simply develop your code on a non-Linux box, and package it up appropriately in a ZIP for submission. But you won't be able to easily run the project's "grader script" so your test-debug-edit cycle through gradescope is going to be painful. I do '''not''' recommend this approach, but if you choose to develop this way you will most certainly want the downloads from [[Assignments/TraceFiles|the trace files page]]. |
Programming projects for this course are graded with https://www.gradescope.com using a standard Ubuntu base environment. Graded work must meet the course submission requirements.
A student has three choices for their development environment:
"Pull" the course Docker image at https://hub.docker.com/r/khellmanatmines/sim-student, and do their development and testing on a virtual machine.
docker pull khellmanatmines/sim-student
Then you will need to install the language toolchain of your choice, if your project will use Java and Scala:docker run -it khellmanatmines/sim-student /bin/bash vmID# /usr/local/install-scripts/install-java.sh ... vmID# /usr/local/install-scripts/install-scala.sh ...
You can install whatever you like on your docker vm, but the Gradescope grading machines will use only the /usr/local/install-*.sh scripts to setup your build environment.
Look in /usr/local/install-scripts for the available languages you can use to complete your project. If you don't find a language you'd like to use, let me know, I'll likely add it!.
Once you have your toolchains installed, exit the virtual machine and commit your image for future project work.
$ docker commit vmID simgrading sha256:6ee998 blah blah blah $ docker image list REPOSITORY TAG IMAGE ID CREATED SIZE simgrading latest 6ee998a8a914 16 seconds ago 1.8GB
If you forget the vmID or need to jump back into an exited container, use
$ docker ps --all ... $ docker start -ai vmID
to resume the session. The ps --all command will list all your interned machines, the first column CONTAINER ID should be used in the docker start command as the vmID.
Now you can complete all your course projects as the blaster user on the virtual machine.
$ docker run -it simgrading runuser -l blaster blaster@vmID $ echo $SIMGRADING /SIMGRADING blaster@vmID $ /SIMGRADING/Random 423 | head -n 3 >test.dat blaster@vmID:~$ cat test.dat 0.53229350689799 0.91892032278702 0.11796685447916
Students can use their own Linux environment with the course's grading scripts and utils installed within it.
Download SIMGRADING.tar.bz2 to your Linux box
- Unravel the tarball somewhere...
somewhere$ tar xjf ~/Downloads/SIMGRADING.tar.bz2
(Your path for somewhere is whereever you'd like it to be.)
Set SIMGRADING in your environment --- you should really do this in your login rc file: .bashrc most likely!
export SIMGRADING="/your/path/to/somewhere/SIMGRADING"
- And make sure the binaries work
$ /your/path/to/somewhere//SIMGRADING/Random 423 | head -n 3 0.53229350689799 0.91892032278702 0.11796685447916
All the binaries should be built with static linking to avoid shared library dependencies. If you find one that causes problems, please let the instructor know ASAP.
Lastly, you could simply develop your code on a non-Linux box, and package it up appropriately in a ZIP for submission. But you won't be able to easily run the project's "grader script" so your test-debug-edit cycle through gradescope is going to be painful. I do not recommend this approach, but if you choose to develop this way you will most certainly want the downloads from the trace files page.