Programming
November 25th, 2024
Programming Platform (IT++):
- Using it++ at iridis
- ssh [userid]@iridis5_a.soton.ac.uk [ or iridis5_b or iridis5_c ]
- for example: ssh sxn@iridis5_a.soton.ac.uk
- Further wiki
- Application for MSc/UG project student
- Application for accounts [PhD]
- ssh [userid]@iridis5_a.soton.ac.uk [ or iridis5_b or iridis5_c ]
- After login, you need to load itpp using the following command:
- module load itpp [latest version]
- module load itpp/4.3.1-gnu [older version]
- Running simulations on Iridis: example given
- A quick way to transfer files to/from iridis.
- This job file allows you to run 4 simulations for 2 hours, in 4 different directories. You need to first create 4 directories, e.g. run1, run2, run3 and run4. Then copy related control files and executable file into each directory. For instance, you can run 4 simulations in 4 directories for different SNR values. See related iridis commands below:
- submit job: sbatch job
- check your jobs: squeue -u <YourUserName>
- cancel your jobs: scancel -u <YourUserName>
- check how busy is iridis: squeue
- You can also run a simulation without submitting a job, for 2 hours using a single core using the following command before running your program: export OMP_NUM_THREADS=1
- for example (using nohup allows you to logout without killing your program):
export OMP_NUM_THREADS=1
nohup ./conv_test
- You may also want to install Linux and IT++ in your computer.
- Linux:
- from OpenSuse you can install IT++ (libitpp6 and libitpp-devel) using YaST2.
- Redhat: see this method. The method below might be outdated now:
- yum install itpp
- yum install itpp-devel
- MacOS: http://macappstore.org/itpp/
- Install homebrew first:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install itpp
- Install homebrew first:
- tkdiff is useful to compare files. Installation for Mac, use this command: brew install tkdiff
- A brief introduction to Linux.
Matlab:
- Running Matlab on Iridis
- This job file allows you to run 2 matlab simulations without the matlab desktop.
Python:
- Comms ib Python: https://commpy.readthedocs.io
- Commpy channel coding: link
Code Development:
- https://git.soton.ac.uk/
- https://sotonproduction.service-now.com/kb_view.do?sysparm_article=KB0029518
Code Documentations:
Programming Codes:
[to unzip .tgz file (myfile.tgz), use command: tar xvzf myfile.tgz]
- Channel Capacity calculator: IT++ codes :: Matlab codes (SISO) :: Matlab codes (MIMO)
- Unity-Rate Codes: IT++ codes
- Coded Modulation: IT++ codes
- Space-Time Trellis Codes: IT++ codes
- Space-Time Block Codes: IT++ codes
- Trellis-Coded MIMO: IT++ codes
- Turbo-Coded and Convolutional-Coded MIMO: IT++ codes
- LDPC-Coded MIMO: IT++ codes
- LDPC-Coded MIMO Nakagami: IT++ codes
- Self-Concatenated Codes: IT++ codes
- EXIT charts for BICM-ID: IT++ codes
- VLC-assisted Coded Modulation: IT++ codes
- Convolutional-Coded Decode-and-Forward and Amplify-and-Forward: IT++ codes
- Antenna patterns: Matlab codes
- Modem channel: IT++ codes
- Hierarchical Modulation (HM): IT++ codes
- Polar coding: Matlab codes 1 :: Matlab codes 2 :: IT++ codes
- RRNS coding: C and itpp codes
- RRNS coded HM: itpp codes
- NOMA: Matlab codes
- Cooperative jammer: Matlab codes :: Matlab codes
- Soft Demodulation: Matlab codes
- Simple 4PSK simulator over Rayleigh fading channels: Matlab codes
- M-PSK simulations and plotting in Matlab: Matlab Codes
- M-PSK MIMO LDPC simulation in Matlab: Matlab Codes
- SWIPT: Matlab Codes
- Reconfigurable Intelligent Surfaces: Matlab Codes