Light Efficient Network Simulator (LENS) is an efficent, yet flexible, neural network simulator.
This application was copied from here.
The purpose of this repository is to setup this application to be usable on Nanyang Technological University's HPC cluster running on CentOS 7.
The entire package is archived into a tar in the dist folder.
-
Clone this repo.
$repois this git repository.$repo_diris the location to clone this to.
git clone $repo $repo_dir
-
Edit the run file. Within the
server.tclandclient.tclfile, you will have access to thelensdirandworkdirvariables. Thelensdirvariable is where the Lens installation is placed andworkdiris the output working directory set inrun.py.-
run.pyConfigure the number of concurrent clients and working directories. -
server.tclSetup the server execution code. The code for starting up and waiting for clients will be automatically injected at runtime. -
client.tclSetup the client execution code. The code for connecting the clients and waiting for the server will be automatically injected at runtime. Note that you need to have the same model loaded in the client as the server or else lens will crash.
-
-
Queue the job.
job=$(python run.py)You can view your running job, run:
qstat -t $jobIf you want to double check what files will executed, run:
python run.py --output-only cd .cacheThis will show you all the automatically generated files.
-
Your output files will be written to the directories specified in
run.py. By default it will be insession/$PBS_JOBID/where $PBS_JOBID is the id of the job.
- All runs will produce logs in the
session/$PBS_JOBID/logsfolder.- STDERR is written to
server.errorclient-$number.err - STDOUT is written to
server.logorclient-$number.log
- STDERR is written to
- You may occasionally need to
sshinto the execution node to debug your job. To do so you must first check which node you're running on.- To get the node
the output will look something like
qstat -f $job | grep vnode
exec_vnode = (hpc-r001:ncpus=1:mem=262144kb:ngpus=1)You will want to ssh thehpc-r001portion like so.You will now be in the node.ssh hpc-r001
- To get the node
- You may also need to run the job interactively. You can do so by calling the following command.
Replace
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=04:00:00 -P $my_projectid$my_projectidwith your project id. Note that you can this will create a job and you can ssh into it multiple times.
If you need to refresh and discard all changes in this repo, you can run:
git reset --hard
git clean -dfNote that this command will delete and reset everything in the folder, including output files.