{"id":152,"date":"2010-06-25T12:43:16","date_gmt":"2010-06-25T11:43:16","guid":{"rendered":"http:\/\/users.ecs.soton.ac.uk\/sxn\/blog\/?page_id=152"},"modified":"2024-11-25T16:53:13","modified_gmt":"2024-11-25T16:53:13","slug":"programming","status":"publish","type":"page","link":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/resources\/programming\/","title":{"rendered":"Programming"},"content":{"rendered":"<h3>Programming Platform (<a href=\"http:\/\/itpp.sourceforge.net\/current\/\">IT++<\/a>):<\/h3>\n<ol>\n<li><a href=\"https:\/\/hpc.soton.ac.uk\/\" target=\"_blank\" rel=\"noopener noreferrer\">Using it++ at iridis <\/a>\n<ol>\n<li>ssh [userid]@iridis5_a.soton.ac.uk\u00a0\u00a0 [ or\u00a0 iridis5_b or\u00a0 iridis5_c ]\n<ul>\n<li>for example:\u00a0 ssh sxn@iridis5_a.soton.ac.uk<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/hpc.soton.ac.uk\/redmine\/projects\/iridis-4-support\/wiki\" target=\"_blank\" rel=\"noopener noreferrer\">Further wiki<\/a><\/li>\n<li><a href=\"https:\/\/sotonproduction.service-now.com\/serviceportal?id=sc_cat_item&amp;sys_id=2ba3bad5db8f2b00f91c8c994b961961&amp;sysparm_category=74c82102dba76300f81bee71ca9619a6\">Application for MSc\/UG project student<\/a><\/li>\n<li><a href=\"https:\/\/sotonproduction.service-now.com\/serviceportal?id=sc_cat_item&amp;sys_id=427c697fdb9ae300f91c8c994b96192c\" target=\"_blank\" rel=\"noopener noreferrer\">Application for accounts<\/a> [PhD]<\/li>\n<\/ol>\n<\/li>\n<li>After login, you need to load itpp using the following command:\n<ol>\n<li>module load itpp [latest version]<\/li>\n<li>module load itpp\/4.3.1-gnu [older version]<\/li>\n<\/ol>\n<\/li>\n<li><a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/elec6258\/matlab\/lyceum.pdf\" target=\"_blank\" rel=\"noopener\">Running simulations on Iridis: example given<\/a><\/li>\n<li>A <a href=\"?page_id=178\">quick way<\/a> to transfer files to\/from iridis.<\/li>\n<li>This <a href=\"http:\/\/www.southampton.ac.uk\/~sxn\/itpp\/job\">job<\/a> 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:\n<ul>\n<li>submit job: sbatch job<\/li>\n<li>check your jobs: squeue -u &lt;YourUserName&gt;<\/li>\n<li>cancel your jobs: scancel -u &lt;YourUserName&gt;<\/li>\n<li>check how busy is iridis: squeue<\/li>\n<\/ul>\n<ul>\n<li>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<\/li>\n<li><span style=\"color: #000000\"><span style=\"font-size: 11pt\">for example (using nohup allows you to logout without killing your program): <\/span><br \/>\n<span style=\"color: #ff0000\"><span style=\"font-size: 11pt\">export OMP_NUM_THREADS=1<br \/>\nnohup .\/conv_test<\/span><\/span><\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-family: Times New Roman,serif\">You may also want to install Linux and IT++ in your computer. <\/span><\/li>\n<li><span style=\"font-family: Times New Roman,serif\">Linux: <\/span>\n<ol>\n<li><span style=\"font-family: Times New Roman,serif\">from <a href=\"http:\/\/software.opensuse.org\/\">OpenSuse<\/a> you can install IT++ (libitpp6 and libitpp-devel) using YaST2.<\/span><\/li>\n<li>Redhat: <a href=\"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/resources\/programming\/install-itpp\/\">see this method<\/a>. The method below might be outdated now:\n<ul>\n<li>yum install itpp<\/li>\n<li>yum install itpp-devel<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<li><span style=\"font-family: Times New Roman,serif\"><span style=\"font-size: small\">MacOS: http:\/\/macappstore.org\/itpp\/ <\/span><\/span>\n<ul>\n<li>Install homebrew first:\n<pre><code class=\"language-bash\" data-lang=\"bash\">\/bin\/bash <span class=\"nt\">-c<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">$(<\/span>curl <span class=\"nt\">-fsSL<\/span> https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh<span class=\"si\">)<\/span><span class=\"s2\">\"<\/span><\/code><code><\/code><\/pre>\n<\/li>\n<li><code>brew install itpp<\/code><\/li>\n<\/ul>\n<\/li>\n<li>tkdiff is useful to compare files. Installation for Mac, use this command: brew install tkdiff<\/li>\n<li><span style=\"font-family: Times New Roman,serif\"><span style=\"font-size: small\"><a href=\"http:\/\/www.linux.org\/lessons\/beginner\/toc.html\">A brief introduction to Linux<\/a>.<br \/>\n<\/span><\/span><\/li>\n<\/ol>\n<h3>Matlab:<\/h3>\n<ul>\n<li><a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/elec6258\/matlab\/lyceum.pdf\" target=\"_blank\" rel=\"noopener\">Running Matlab on Iridis<\/a><\/li>\n<li>This <a href=\"http:\/\/www.southampton.ac.uk\/~sxn\/matlab\/job\">job<\/a> file allows you to run 2 matlab simulations without the matlab desktop.<\/li>\n<\/ul>\n<h3>Python:<\/h3>\n<ul>\n<li>Comms ib Python: <a href=\"https:\/\/commpy.readthedocs.io\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/commpy.readthedocs.io<\/a><\/li>\n<li>Commpy channel coding: <a href=\"https:\/\/commpy.readthedocs.io\/en\/latest\/channelcoding.html\">link <\/a><\/li>\n<\/ul>\n<h3>Code Development:<\/h3>\n<ul>\n<li><a href=\"https:\/\/git.soton.ac.uk\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/git.soton.ac.uk\/<\/a><\/li>\n<li><span style=\"font-size: 11.0pt\"><a href=\"https:\/\/sotonproduction.service-now.com\/kb_view.do?sysparm_article=KB0029518\">https:\/\/sotonproduction.service-now.com\/kb_view.do?sysparm_article=KB0029518<\/a><\/span><\/li>\n<\/ul>\n<h3>Code Documentations:<\/h3>\n<ol>\n<li><a href=\"http:\/\/itpp.sourceforge.net\/4.3.1\/modules.html\" target=\"_blank\" rel=\"noopener noreferrer\">It++<\/a><\/li>\n<li><a href=\"http:\/\/developer.apple.com\/library\/mac\/navigation\/index.html#section=Resource%20Types&amp;topic=Guides\">Xcode<\/a><\/li>\n<\/ol>\n<h3>Programming Codes:<\/h3>\n<p>[to unzip .tgz file (myfile.tgz), use command: tar xvzf myfile.tgz]<\/p>\n<ol>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Channel Capacity calculator: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/capacity_codes.zip\">IT++ codes<\/a>\u00a0 ::\u00a0 <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/c_capacity.m\">Matlab codes (SISO)<\/a>\u00a0 ::\u00a0 <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/mimo_capacity.m\">Matlab codes (MIMO)<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Unity-Rate Codes: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/urcode.zip\">IT++ codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Coded Modulation: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/cm.zip\">IT++ codes<\/a><br \/>\n<\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Space-Time Trellis Codes: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/spacetime-trellis.zip\">IT++ codes<\/a><\/span><\/span><\/li>\n<li>Space-Time Block Codes: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/stbc-mike.zip\" target=\"_blank\" rel=\"noopener\">IT++ codes<\/a><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Trellis-Coded MIMO: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/mimo.tgz\">IT++ codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Turbo-Coded and Convolutional-Coded MIMO: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/conv.tgz\">IT++ codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">LDPC-Coded MIMO: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/ldpc-mimo.tgz\">IT++ codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">LDPC-Coded MIMO Nakagami: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/ldpc-mimo-nakagami.tgz\">IT++ codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Self-Concatenated Codes: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/SECCC-ID-v1.zip\" target=\"_blank\" rel=\"noopener\">IT++ codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">EXIT charts for BICM-ID: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/bicmid-exit-program.tgz\">IT++ codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">VLC-assisted Coded Modulation: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/rvlc-cm-bit.tgz\">IT++ codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Convolutional-Coded <\/span><\/span><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\"> Decode-and-Forward and Amplify-and-Forward: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/conv_aaf_daf.tgz\">IT++ codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Antenna patterns: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/patterns.m\">Matlab codes<\/a><\/span><\/span><\/li>\n<li><span style=\"font-family: Times New Roman\"><span style=\"font-size: small\">Modem channel: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/modem_channel.zip\">IT++ codes<\/a><\/span><\/span><\/li>\n<li>Hierarchical Modulation (HM): <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/HM-2019.tgz\" target=\"_blank\" rel=\"noopener noreferrer\">IT++ codes<\/a><\/li>\n<li>Polar coding: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/polar_codes_matlab_fading.zip\" target=\"_blank\" rel=\"noopener noreferrer\">Matlab codes 1<\/a>\u00a0 ::\u00a0 <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/polar_codes_matlab_fading-modem.zip\" target=\"_blank\" rel=\"noopener noreferrer\">Matlab codes 2<\/a>\u00a0 ::\u00a0 <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/PolarCodesModem.tgz\" target=\"_blank\" rel=\"noopener noreferrer\">IT++ codes<\/a><\/li>\n<li>RRNS coding: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/RRNS.tgz\" target=\"_blank\" rel=\"noopener noreferrer\">C and itpp codes<\/a><\/li>\n<li>RRNS coded HM: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/itpp\/RRNS-HM.tgz\" target=\"_blank\" rel=\"noopener noreferrer\">itpp codes<\/a><\/li>\n<li>NOMA: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/C_NOMA.zip\" target=\"_blank\" rel=\"noopener noreferrer\">Matlab codes<\/a><\/li>\n<li>Cooperative jammer: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/LDPC_CooperativeJammer.zip\" target=\"_blank\" rel=\"noopener noreferrer\">Matlab codes<\/a>\u00a0 ::\u00a0 <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/PLS_LDPC.zip\">Matlab codes<\/a><\/li>\n<li>Soft Demodulation: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/convertor.tgz\">Matlab codes<\/a><\/li>\n<li>Simple 4PSK simulator over Rayleigh fading channels: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/main_4psk_rayleigh.m\" target=\"_blank\" rel=\"noopener\">Matlab codes<\/a><\/li>\n<li>M-PSK simulations and plotting in Matlab: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/simulation_plot.zip\" target=\"_blank\" rel=\"noopener\">Matlab Codes<\/a><\/li>\n<li>M-PSK MIMO LDPC simulation in Matlab: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/ldpc_mimo_test.zip\" target=\"_blank\" rel=\"noopener\">Matlab Codes<\/a><\/li>\n<li>SWIPT: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/SWIPT.zip\" target=\"_blank\" rel=\"noopener\">Matlab Codes<\/a><\/li>\n<li>Reconfigurable Intelligent Surfaces: <a href=\"https:\/\/secure.ecs.soton.ac.uk\/notes\/sxn\/msc\/matlab\/RIS_Codes.zip\">Matlab Codes<\/a><\/li>\n<\/ol>\n<h3>Programming Codes from other sites:<\/h3>\n<ol>\n<li><a href=\"https:\/\/mlc.committees.comsoc.org\/papers-with-code\/\" target=\"_blank\" rel=\"noopener noreferrer\">IEEE papers with programming codes<\/a><\/li>\n<\/ol>\n<h3>Useful online tools:<\/h3>\n<ol>\n<li><a href=\"https:\/\/www.derivative-calculator.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">Online derivative calculator<\/a><\/li>\n<li><a href=\"https:\/\/uk.mathworks.com\/help\/symbolic\/differentiation.html\" target=\"_blank\" rel=\"noopener noreferrer\">Derivation in Matlab<\/a><\/li>\n<li><a href=\"http:\/\/www.matrixcalculus.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Matrix Calculus<\/a><\/li>\n<li><a href=\"https:\/\/www.integral-calculator.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Online integral calculator<\/a><\/li>\n<li><a href=\"https:\/\/www.symbolab.com\/solver\/matrix-eigenvalues-calculator\" target=\"_blank\" rel=\"noopener noreferrer\">Eigen Calculator<\/a><\/li>\n<li><a href=\"https:\/\/www.symbolab.com\/solver\/roots-calculator\" target=\"_blank\" rel=\"noopener\">Find root<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Programming Platform (IT++): Using it++ at iridis ssh [userid]@iridis5_a.soton.ac.uk\u00a0\u00a0 [ or\u00a0 iridis5_b or\u00a0 iridis5_c ] for example:\u00a0 ssh sxn@iridis5_a.soton.ac.uk Further wiki Application for MSc\/UG project student Application for accounts [PhD] 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: [&hellip;]<\/p>\n","protected":false},"author":3109,"featured_media":0,"parent":52,"menu_order":6,"comment_status":"closed","ping_status":"closed","template":"page-without-sidebar.php","meta":{"footnotes":""},"class_list":["post-152","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/wp-json\/wp\/v2\/pages\/152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/wp-json\/wp\/v2\/users\/3109"}],"replies":[{"embeddable":true,"href":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/wp-json\/wp\/v2\/comments?post=152"}],"version-history":[{"count":73,"href":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/wp-json\/wp\/v2\/pages\/152\/revisions"}],"predecessor-version":[{"id":2390,"href":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/wp-json\/wp\/v2\/pages\/152\/revisions\/2390"}],"up":[{"embeddable":true,"href":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/wp-json\/wp\/v2\/pages\/52"}],"wp:attachment":[{"href":"https:\/\/generic.wordpress.soton.ac.uk\/sxn\/wp-json\/wp\/v2\/media?parent=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}