Home
Career
Teaching
Students
Publications
Achievements
Contacts
Jobs
Information to the group members

Student Intro

Code of Practice
    Human Relationships
    Security
    General information on research
General Usage of Our Beowulf Cluster
    Linux and Command-Line Utilities
    X11 Forwarding
    Handling TAR-files
    Firefox Problem Tied with NFS and lightening
    Riken
    UniversityCluster
Programming
    General Programming
    Fortran and Python
    HPC
    Gnuplot
    Tgif
    GPU
    Problem Solving
    Running MPI Code
    FDTD-related
    Skills for presentation and technical report writing and Viva
    LaTeX
    Word document handling
    To BSc and MSc Students
Living in Manchester
    Accommodation Hunting and USS
    Fumie's availability

Code of Practice


Human Relationships

When you talk to Fumie either during the meeting or in non-meeting hours, you should clearly show Fumie your own understanding of the problem. Fumie will not judge you for your mistakes but support you and correct your understanding. You should share your research understanding and problems. You should not act as you understand everything if you do not. Ultimately, when it comes to research you and Fumie are co-workers. We stand at the same level and you should treat Fumie as your collaborator. Thus I expect students to

  • have good English communication skills
  • be brave enough to share his/her weak points with me
  • update me very frequently in person without setting a weekly meeting( most of students just pop in to my room. I set weekly meetings when I realised that the student is likely to fail to progress)
  • ask me ANY silly questions so that students do not waste their precious time by browsing the internet to find an answer
  • write down all the skills/techniques absorbed from me in order to improve himself/herself in an efficient manner
  • follow my advice and discuss any plan of the change of the action with me prior to taking the action so that students do not move to a wrong direction and waste their time

Security

In the past there were some incidents involving access to various machines in our cluster and entering permission-unprotected directories as well as viewing files whose owner was different from the accessing person.

The cluster administrator is capable of tracking all actions of all users. Ignorance and lack of Unix system knowledge will not be considered as an excuse for violating these security rules.

Unless you execute the parallel computing programs in our computer cluster or belong to the cluster service providers you are expected to login and use only your own machine and access only your own or shared files.

Increased security constrains put more burden on the cluster administrator. Therefore, students demonstrating strong Unix skills might be asked to help the senior cluster administrators due to the current staff shortage.

Your university card can be activated to enter the Sackville street building after 17:00 on weekdays and all day long on weekends by swiping your card. If you need to access the building during these time slots, please give Fumie your card number so that Fumie can ask john.ashton-2@manchester.ac.uk to activate your card.

General information on research

When you face your research problems

  1. Define the problem & gather as much information as possible
  2. Formulate a theory of what is going on and why
  3. Work out some ways to test the theory
  4. If the test data supports the theory, work out a solution based on the theory
  5. If the test data disproves the theory, formulate a new theory and repeat steps 3 & 4

The following reference will give you the overview of the research


General Usage of Our Beowulf Cluster


Linux and Command-Line Utilities

The Key F1 raises the window under the mouse. The Key F2 lowers the window under the mouse. The Key F3 iconizes the window under the mouse. The Key F4 kills the window under the mouse.

Linux as all Unix systems is famous for the powerful command line utilities it offers. Refer to the following articles if you have little knowledge about Linux , LinuxPlusShell and Command-line interface.

Please go through Online Introduction to Unix to acquire the minimum skills on Unix.

Then go through Linux Shell Scripting Tutorial.

Refer to the openSUSE 10.3 Reference for the introduction to the important Linux commands and secure network operations.

Reading entire Chapters 19 and 36 is strongly advisable:

19: Working with the Shell pp. 271-296
36: SSH-Secure Network Operations pp. 589-596

The most important reference Sections are:

19.3: Important Linux Commands pp. 280-290
36.2: The ssh Program p. 590
36.3: spc-Secure Copy p. 590

Refer to the Wikipedia article below for a list of frequently used Unix commands.

Bash is a command-line interpreter provided with the majority of Linux distributions. It allows you to execute the command-line utilities and programs:

http://en.wikipedia.org/wiki/Bash
http://www.linuxconfig.org/Bash_scripting_Tutorial
http://bash-hackers.org/wiki/doku.php
http://wooledge.org:8000/BashPitfalls

If you face the bash message "command not found" your shell did not recognise the command you executed. It might occur because of the incorrect spelling of command name, e.g. "gfrtran" instead of "gfortran". In the other case the executed command might not be present in your system or you do not have sufficient user rights to run it.

X11 Forwarding

The following IP addresses are available in our cluster. They are all 64 bits machines. The IP address inside the bracket "()" is the old IP address before we moved to the Engineering Building. So when you see the sentence which involves the old IP addresses please obtain the new IP address using the list below.

  • 10.109.248.74(130.88.154.12) at FSR
  • 10.207.80.147(130.88.116.20) at Hossein
  • 10.109.248.66(130.88.116.21) at Yang
  • 10.109.248.85(130.88.116.38) at FSR
  • 10.109.248.69(130.88.116.50) at FSR
  • 10.109.248.84(130.88.116.55) at Zherui
  • 10.109.248.64(130.88.116.69) at Fatma
  • 10.109.248.63(130.88.116.70) at Shokooh
  • 10.109.248.88(130.88.116.141) at SFR
  • 10.109.248.65(130.88.116.233) at Qiyuan
  • 10.109.248.87(130.88.116.225) at FSR
  • 10.109.248.86(130.88.116.27) at FSR
  • 10.109.248.75(130.88.154.14) at FSR
  • 10.109.248.71(130.88.118.141) at FSR
  • 10.109.248.73(130.88.118.133) at FSR
  • 10.109.248.72(130.88.154.197) at FSR
  • 10.109.248.70(130.88.108.137) at FSR
  • 10.109.248.61(130.88.154.90) at FSR
  • The machine 130.88.154.90 is the NFS server and /home is NFS-mounted in our cluster apart from Sun workstations. /home is daily backed up. Therefore please do not run any computation and do not store the data which can be reproduced by the simple computation under the home directories. Only source code, shell scripts, reading materials, LaTex files, figures for publication should be stored under your home directories.

    Please use

  • 130.88.118.141 when your computation requires less than 64 GB of memory
  • 130.88.118.133 when your computation requires more than than 64 GB of memory
  • 130.88.154.197 when your computation requires more than 96 GB of memory
  • 130.88.108.137 when your computation requires more than 128 GB of memory
  • The most of the computation should be done under the local directories such as /local, /scratch, /scratch1, /scratch2, /scratch3, /media/ on each machine. You should find the location and spare space for computation on each machine by running df -ha

    If your code is heavy in data I/O then please use internal hard drive such as /local and store the data in the external hard drive and delete the data in the internal hard drive when you stop using the data in the internal hard drive.

    The code for ladies is 1966# The code for B30c is 3765 The code for the room next to B30c for coffee is 1824. The code for E24 is 1965 for fridge and microwaves. The code for E20 is C2854. The code for E23 is 0258. The codefor E16 is C1982 The codefor E17 is 2406 The code for E1 is 3419. The code for E6 is 0710. The code for D45a is 6601# The code for D45b is 4419# The code for Rm 2.49 in Kilburn building is C3470Y for spiral binding. The code for B21 (top of the steps, opposite B22d) is C1983

    When you compile your program using Makefile on the dual core machines please use make -j2. On 130.88.154.177 , you can use make -j4. If a computer has "X" cores, then you can use make -jX for the fast compilation.

    A short step-by-step guide explaining how to export graphical output from a remote Linux machine to your local Linux computer.

    If you face difficulties in accessing the world (such as bbc.co.uk from firefox or google-chrome) in Engineering Building due to the static IP, then please follow the guidance Guidance for KDE users or Guidance for Gnome users

    Handling TAR-files

    Compressing and decompressing data to and from TAR-file archives:
    For very strong compression:
    tar -cJvf <archive_name> <file_list>--remove-files
    tar -cJvf archive.xz file1.txt file2.txt --remove-files
    Here --remove-files means you delete the files when you put them into the tar file. This is very slow in process but quite strong in compression rate. For strong compression:
    tar -cjvf <archive_name> <file_list>
    tar -cjvf archive.tar.bz2 file1.txt file2.txt
    For compression less than bzip2 but faster:
    tar -zcvf <archive_name> <file_list>
    tar -zcvf archive.tar.gz file1.txt file2.txt
    For compression less than bzip2 but faster than zcvf , which is recommended to use for the data collection from Riken:
    tar -zcf <archive_name> <file_list>
    tar -zcf archive.tar.gz file1.txt file2.txt

    This command will compress two files into an archive. You may also use common Unix wildcards and type "*" or "file?.txt" to compress all files in the directory or all files with a variable single symbol value.

    Follow the command below to decompress a TAR-archive file into a current directory:

    tar -xjvf <archive_name>
    tar -xjvf archive.tar.bz2
    tar -zxvf <archive_name>
    tar -zxvf archive.tar.gz

    Firefox Problem Tied with NFS and lightening

    Home directories in our cluster are mounted via NFS and backed up daily. NFS might cause problems running Firefox web browser on a certain machine. Please follow the steps below to restart Firefox:

    1. cd ~/.mozilla/firefox/<letter_sequence>.default
    2. ls -lrt lock to find the machine's IP address where you run Firefox at the moment
    3. rm lock to delete the lock
    4. Login to the machine where you were running Firefox
    5. Find the process number which is related to Firefox
    6. kill all processes associated with Firefox on that particular machine
    Please perform the following to reduce the workload of the system:
    1. run firefox
    2. Find tools
    3. select add-ons
    4. search noscript
    5. install noscript

    Riken

    For the journal and conference publication please put an acknowledge section with the sentence of
    " \section*{Acknowledgement} This work was completed in part with HOKUSAI-GreatWave Computer System at RIKEN. \url{ http://i.riken.jp/download/sites/2/HOKUSAI_system_overview_en.pdf } . "
    For scientific presentation please select an appropriate logo from Logos and Photos .

    Prior to have an access to Riken's supercomputers, please read first four PDF files of Users Guide and Software and System Overview and Usage Policy and Operation Summary and Future Plan and decide which system you are going to use for your computation based on the problems you are going to deal with and work out the job submission scripts. The programming language are the way to tune your code explained in Manual which is taken from https://hokusai.riken.jp/ . It is extremely important for you to test your job submission script with a small test program in order to make sure that you run your jobs at the backend, not at the frontend. You are not supposed to enter or put or delete any files at /home/fumie/.ssh . You should not attempt anything new on Greatwave without discussing it with Fumie first. If you have any questions/problems in using Riken, please fill Inquiry form and send it to Fumie which will be checked by Fumie and forwarded to Riken.

      Login to Riken
    1. ssh to 10.109.21.47 with the username of riken. Please obtain the password from Fumie. The usual port number ( not the standard 22) should be used. If this IP address does not work please contact Fumie.
    2. Run sudo /usr/local/bin/rikenssh 1 or sudo /usr/local/bin/rikenssh 2 or sudo /usr/local/bin/rikenssh 3 or sudo /usr/local/bin/rikenssh 4 . The number of 1 , 2 , 3 , and 4 specify the login node at the front-end. When you run screen or tmux at the front end, it is best to stick to one of these 4 numbers for you to re-login.
    3. This command ask you to put a password. Please get the password from Fumie in person.
    4. You will find yourself at /home/fumie at the front end of Hokusai system. The default shell of this user account is bash. When you prefer tcsh , then run tcsh in the x-terminal.
      File copy from our cluster to Hokusai

      In this section, we assume fileA is your tar file which you want to send to Riken. If you do not know tar, then please read through Handling TAR-files

    1. From your local computer where you did the test-run, transfer fileA to 10.109.21.47 by running scp -P 22111 -C -r fileA riken@10.109.21.47:/rikendata/.
    2. Login to 10.109.21.47 using ssh -XC -p 22111
    3. In the x-terminal where you logged into 10.109.21.47, run sudo /usr/local/bin/scptoriken fileA to send fileA to Hokusai system
    4. In the x-terminal where you logged into 10.109.21.47, login to Hokusai system. In the Hokusai system, go to the data directory by running cd /home/fumie/data
    5. You will find your fileA at /home/fumie/data in the Hokusai system
    6. In the Hokusai system, produce your own directory under /home/fumie/data such as /home/fumie/data/yourusername
    7. Run mv /home/fumie/data/fileA /home/fumie/data/yourusername/yourappropriatedirectory/. in Hokusai. Here, please make sure that this is mv, NOT cp ! Only subdirectories ( not files) should exist at /home/fumie/data in Hokusai.
      File copy from Hokusai to our cluster

      In this section, we assume fileB is your tar file which you want to send from Riken. If you do not know tar, then please read through Handling TAR-files

    1. Login to 10.109.21.47 using ssh -XC
    2. In the x-terminal where you logged into 10.109.21.47, you run xterm -fa monospace-18 & to create your second x-window. The x-window where you logged into 10.109.21.47 is called the first x-window in this section.
    3. In the first x-window, login to Riken and run
      cd /home/fumie/data; ln -s /home/fumie/data/yourusername/yourappropriatedirectory/fileB . in Hokusai
    4. In the second x-window, run sudo /usr/local/bin/scpfromriken fileB and run cd /rikendata
    5. In the second x-window, you will find /rikendata/fileB and run
      scp -P 22111 -C -r /rikendata/fileB yourusername@your.local.machine.IP:/your/local/directory/. Here, never use mv . After the data transfer, in this second x-window, run rm /rikendata/fileB
    6. In the first x-window, run rm /home/fumie/data/fileB
    7. In the first x-window, remove all the data you produced in Riken immediately and then exit .
    Your old files in Riken are available at /home/fumie/ricc_data and /home/fumie/ricc_home These two directories are in the read-only system and you need to copy the necessary files into /home/fumie/data/yourowndirectory/appropriatedirectory in Hokusai.
      Run the serial jobs in Hokusai
    1. Login to Riken
    2. Run pjshowrsc in order to check the resources availability and decide which cluster you want to use based on your needs and the load of each cluster in Hokusai
    3. Go to your directory by cd /home/fumie/data/yourowndirectory/appropriatedirectory
    4. Decide which cluster you use: If your job is less than 96GB of memory then please use MPC.
    5. Compile your program at the frontend with the compiler options appropriate for your needs as follows
      • On ACSL (Application Computing Server with Large Memory )
        1. module load intel
        2. Produce a Makefile which performs the compilation of ifort filename.f90 Your Fortran code should not have write(100,*)a . Instead you should use format the data output.
          Run man ifort to identify the compiler options and add them to your Makefile
          and make clean; make
      • On MPC
        1. module load sparc
        2. Produce a Makefile which performs the compilation of frtpx filename.f90
          Run man frtpx to identify the compiler options and add them to your Makefile
          and make clean; make
    6. Produce a job submission script as follows and tweak the parameters and options based on your needs
      • On ASCL
      • cat g00-username.sh
        #!/bin/sh
        #------ pjsub option --------#
        #PJM -L rscunit=gwacsl
        #PJM -L rscgrp=batch
        #PJM -L vnode=1
        #PJM -L vnode-core=1
        #PJM -L vnode-mem=30Gi
        #PJM -L elapse=23:59:00
        #PJM -j

        export OMP_NUM_THREADS=1
        time ./a.out -Wl,-T
      • On MPC
      • cat g00-username.sh
        #!/bin/sh
        #------ pjsub option --------#
        #PJM -L rscunit=bwmpc
        #PJM -L rscgrp=batch
        #PJM -L vnode=([core=1][core-mem=100Mi])
        #PJM -L elapse=23:59:00
        #PJM -j

        export OMP_NUM_THREADS=1
        time ./a.out -Wl,-T
    7. Run your job at the backend by submitting the job via pjsub g00-username.sh for example. Please make sure that the job script name has your name by replacing username with yours; otherwise the jobs are killed by Fumie.
    8. Check your job status via pjstat and if needed, kill the job via pjdel jobID.
      Run the OpenMP jobs in Hokusai
    1. Login to Riken
    2. Run pjshowrsc in order to check the resources availability and decide which cluster you want to use based on your needs and the load of each cluster in Hokusai
    3. Go to your directory by cd /home/fumie/data/yourowndirectory/appropriatedirectory
    4. Decide which cluster you use: If your job is less than 32GB of memory then please use MPC.
    5. Compile your program at the frontend with the compiler options appropriate for your needs as follows
      • On ASCL
        1. module load intel
        2. Produce a Makefile which performs the compilation of ifort -parallel -qopenmp filename.f90 Your Fortran code should not have write(100,*)a . Instead you should use format the data output.
          Run man ifort to identify the compiler options and add them to your Makefile
          and make clean; make
      • On MPC
        1. module load intel
        2. Produce a Makefile which performs the compilation of ifort -parallel -qopenmp filename.f90
          Run man ifort to identify the compiler options and add them to your Makefile
          and make clean; make
    6. Produce a job submission script as follows and tweak the parameters and options based on your needs. The parameter core-mem ,presented in the following examples of the job submission script, can be changed to node-mem. When you use node-mem, you have to set the memory size to the total memory size required by your job.
      • On ASCL
      • cat g00-username.sh
        #!/bin/sh
        #------ pjsub option --------#
        #PJM -L rscunit=gwacsl
        #PJM -L rscgrp=batch
        #PJM -L vnode=1
        #PJM -L vnode-core=32
        #PJM -L core-mem=5Gi
        #PJM -L elapse=23:59:00
        #PJM -j

        export OMP_NUM_THREADS=32
        time ./a.out -Wl,-T
      • On MPC
      • cat g00-username.sh
        #!/bin/sh
        #------ pjsub option --------#
        #PJM -L rscunit=bwmpc
        #PJM -L rscgrp=batch
        #PJM -L vnode=1
        #PJM -L vnode-core=11
        #PJM -L core-mem=900Mi
        #PJM -L elapse=23:59:00
        #PJM -j

        export OMP_NUM_THREADS=8
        time ./a.out -Wl,-T
    7. Run your job at the backend by submitting the job via pjsub g00-username.sh for example. Please make sure that the job script name has your name by replacing username with yours; otherwise the jobs are killed by Fumie.
    8. Check your job status via pjstat and if needed, kill the job via pjdel jobID.
      Run the MPI jobs in Hokusai
    1. Login to Riken
    2. Run pjshowrsc in order to check the resources availability and decide which cluster you want to use based on your needs and the load of each cluster in Hokusai
    3. Go to your directory by cd /home/fumie/data/yourowndirectory/appropriatedirectory
    4. Compile your program at the frontend with the compiler options appropriate for your needs as follows
      • On MPC
        1. run module load sparc
        2. Produce a Makefile which performs the compilation of mpifrtpx -Kquickdbg filename.f90
          Run man mpifrtpx to identify the compiler options and add them to your Makefile
          and make clean; make
    5. Produce a job submission script as follows and tweak the parameters and options based on your needs.
      • On MPC using many nodes and many cores per node
      • cat g00-username.sh
        #!/bin/sh
        #------ pjsub option --------#
        #PJM -L rscunit=bwmpc
        #PJM -L rscgrp=batch
        #PJM -L vnode=(core=10)
        #PJM --mpi proc=10
        #PJM -L elapse=20:00:00
        #PJM -j
        #---------------Program execuation---------#
        mpirun ./a.out -wl,-T
    6. On MPC using many nodes and one core per node
    7. cat g00-username.sh
      #!/bin/sh
      #------ pjsub option --------#
      #PJM -L rscunit=bwmpc
      #PJM -L rscgrp=batch
      #PJM -L node=10
      #PJM --mpi proc=10
      #PJM -L elapse=20:00:00
      #PJM -j
      #---------------Program execuation---------#
      mpirun ./a.out -wl,-T
    8. Run your job at the backend by submitting the job via pjsub g00-username.sh for example. Please make sure that the job script name has your name by replacing username with yours; otherwise the jobs are killed by Fumie.
    9. Check your job status via pjstat and if needed, kill the job via pjdel jobID.
      Run the Python with tensorflow or PyTorch jobs in Hokusai
    1. Login to Riken
    2. Run pjshowrsc in order to check the resources availability and decide which cluster you want to use based on your needs and the load of each cluster in Hokusai
    3. Go to your directory by cd /home/fumie/data/yourowndirectory/appropriatedirectory
    4. IF NEEDED, install necessary software/libraries such as
      wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
      tar zxf Python-3.6.4.tgz
      cd Python-3.6.4
      mkdir build; cd build
      ../configure --prefix=$HOME/local/python3 --with-tcltk-includes="-I/$HOME/local/python3/include" --with-tcltk-libs="-L/$HOME/local/python3/lib -ltcl8.6 -ltk8.6"
      make ; make install
      export PATH=$HOME/local/python3/bin:$PATH
      export LD_LIBRARY_PATH=$HOME/local/python3/lib:$LD_LIBRARY_PATH
      pip3 install numpy
      pip3 install http://download.pytorch.org/whl/cu90/torch-0.4.0-cp36-cp36m-linux_x86_64.whl
      pip3 install torchvision
      pjsub --interact -L rscunit=bwmpc
      export PATH=$HOME/local/python3/bin:$PATH
      export LD_LIBRARY_PATH=$HOME/local/python3/lib:$LD_LIBRARY_PATH
      cd $HOME/data/chao/download/
      pip3 install ./nibabel-2.2.1-py2.py3-none-any.whl
      export LD_LIBRARY_PATH=$HOME/local/python3/lib:$LD_LIBRARY_PATH
      wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run
      sh cuda_9.0.176_384.81_linux-run
      export PATH=$HOME/local/cuda-9.0/bin:$PATH
      tar zxf cudnn-9.0-linux-x64-v7.1.tgz
      cp ./cuda/include/cudnn.h /home/fumie/local/cuda-9.0/include/
      cp ./cuda/lib64/libcudnn* /home/fumie/local/cuda-9.0/lib64/
      chmod a+r /home/fumie/local/cuda-9.0/include/cudnn.h
      chmod a+r /home/fumie/local/cuda-9.0/lib64/libcudnn*
      export LD_LIBRARY_PATH=$HOME/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
      pip3 install tensorflow-gpu
      module unload python
      unset PYTHONPATH
      module load anaconda
      conda create --name py2 python=2
      source activate py2
      conda install keras==2.1.3
    5. Test your code from frontend by running jobs at the backend by running
      pjsub --interact -L rscunit=gwacsg,rscgrp=interact_gpu -x gpu_per_vnode=1
      export PATH=$HOME/local/cuda-9.0/bin:$HOME/local/python3/bin:$PATH
      export LD_LIBRARY_PATH=$HOME/local/cuda-9.0/lib64:$HOME/local/python3/lib:$LD_LIBRARY_PATH
      python3
      import torch
      torch.cuda.is_available()
      from tensorflow.python.client import device_lib as _device_lib
      for x in _device_lib.list_local_devices():
    6. Produce a job submission script as follows and tweak the parameters and options based on your needs.
      • On MPC for CPU version using many nodes and many cores per node
      • cat g00-username.sh
        #!/bin/sh
        #------ pjsub option --------#
        #PJM -L rscunit=bwmpc
        #PJM -L rscgrp=batch
        #PJM -L vnode-core=1
        #PJM -L vnode-mem=100Mi
        #PJM -L elapse=20:00:00
        #PJM -j
        #---------------Program execuation---------#
        export OMP_NUM_THREADS=1
        export PATH=$HOME/local/python3/bin:$PATH
        export LD_LIBRARY_PATH=$HOME/local/python3/lib:$LD_LIBRARY_PATH
        python3 ./pytorch_CV.py
      • On ASCL for CPU version using 1 node
      • cat g00-username.sh
        #!/bin/sh
        #------ pjsub option --------#
        #PJM -L rscunit=gwacsl
        #PJM -L rscgrp=batch
        #PJM -L vnode=1
        #PJM -L vnode-core=2
        #PJM -L vnode-mem=40Gi
        #PJM -L elapse=23:59:59
        #PJM -j
        #---------------Program execuation---------#
        export PATH=$HOME/local/python3/bin:$PATH
        export LD_LIBRARY_PATH=$HOME/local/python3/lib:$LD_LIBRARY_PATH
        python3 ./pytorch_CV.py
      • On ACSG for GPU version using 1 node
      • cat g00-username.sh
        #!/bin/sh
        #----- pjsub option -------#
        #PJM -L rscunit=gwacsg
        #PJM -L rscgrp=gpu
        #PJM -L vnode=1
        #PJM -L vnode-core=17
        #PJM -L vnode-mem=58800Mi
        #PJM -x gpu_per_vnode=1
        #PJM -L elapse=23:59:59
        #PJM -j
        #---------------Program execuation---------#
        export PATH=$HOME/local/python3/bin:$HOME/local/cuda-9.0/bin:$PATH
        export LD_LIBRARY_PATH=$HOME/local/python3/lib:$HOME/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
        python3 ./pytorch_rk.py
    7. Run your job at the backend by submitting the job via pjsub g00-username.sh for example. Please make sure that the job script name has your name by replacing username with yours; otherwise the jobs are killed by Fumie.
    8. Check your job status via pjstat and if needed, kill the job via pjdel jobID.
    UniversityCluster Contribution from Miss Fatma Eltashani
  • In order to access the computational facility within the University of Manchester, please send an email with your request to
    its-ri-team@manchester.ac.uk with the title of "Guidance and advice" explaining the computational resources you need.

    The detailed procedure is
    1. send email to
      its-ri-team@manchester.ac.uk with the content of
      Hi I would like to get an access to csf for machine learning calculation My IT username is YourUserName
      YourUserName is something like zzalszfc
    2. When support-portal@manchester.ac.uk gives you an access to csf send email to
      its-ri-team@manchester.ac.uk with the content of
      Hi I am writing to you to request access to the free at point access to the Nvidia GPU in the CSF cluster. My IT username is YourUserName
    3. Run ssh -XC -l zzalszfc -p 22 10.99.203.51 or ssh -XC -l zzalszfc -p 22 10.99.203.52 or ssh -XC -l zzalszfc -p 22 csf3.itservices.manchester.ac.uk to login. Here you should change zzalszfc to your IT username
    4. Run cd scratch and start job submission. Scratch is where you will be submitting your jobs. Now, you might notice that not all python libraries you need are already installed. To do that, you need to create a condo environment. First, you need to
    5. Run module load apps/anaconda3/5.2.0 and module load tools/env/proxy
    6. Create your empty environment by running conda create -n test_env
    7. Activate your empty environment by running source activate test_env
      Here you should see the name of the environment before your username such in: (test_env) [username@hlogin2 [csf3] ~]$
    8. Install/uninstall any package you want using either pip3 such as
      pip3 install pandas or conda such as
      conda install pandas
      conda remove pandas
    9. When you installed all your packages and ready to exit the environment, run
      conda deactivate test_env
    10. IF you need to delete the environment then, run
      conda remove -n test_env --all
    11. Create a job submission script fumie.sh such as
      #!/bin/bash --login
      #$ -cwd
      #$ -l nvidia_v100=1
      module load apps/anaconda3/5.2.0
      source activate test_env
      python3 /mnt/iusers01/eee01/mbgm3fe2/scratch/fatma_code.py
      conda deactivate test_env
      Here nvidia_v100 refers to the number of GPU cards you would like to use. The number is either 1 or 2. The python3 line should refer to the location where your python file is located.
    12. Submit your job by running
      qsub fumie.sh
    13. Check your job status by running
      qstat
    14. When the job is finished, you'll see that two new files are created:
      fumie.sh.txt.o?????
      fumie.sh.txt.e?????
      which are the output and error messages, respectively
    15. When you use UK Biobank please go through
      https://ri.itservices.manchester.ac.uk/csf3/software/tools/ukbiobank/ and then within CFS3
      cd /mnt/data-sets/ukbiobank/full-release/ to see/read the data. There is information on the data at
      /mnt/data-sets/ukbiobank/full-release/ukb_genetic_file_description.txt Prior to the data access, you need to get an approval of the data access from UK biobank and then send an email to its-ri-team@manchester.ac.uk saying " Dear ITS RI Team I am in the group of Fumie Costen who hold the access to the full data (Tier 3) of UK Biobank. I have an approval of the data access from UK Biobank as you can see in the forwarded email below. Please add me to the dataset-ukbiobank-full Unix group and create a RDS-ssh account for me. Best regards, "

  • Programming


    Use a text editor emacs for the programming activity. The information on emacs is reference file

    General Programming

    For the introduction to the basic programming concepts and style.

    Programming skills are acquired in practise and experimentation. Do not rely on pure book reading or asking people about each error message.

    Programming as well as LaTeX typesetting and shell scripting involves debugging of your code so that you can compile the program without errors and obtain the expected result.

    By facing and tackling the error messages from compilers you actually learn the techniques for programming. When you are stuck with the compilation or receive strange error messages, which you can not fix, you can produce a little program which mimics your current problem in the large production code.

    It is much simpler to debug and fix the "extracted code". Once you make it work you can transfer the problem solution to the major code.

    If you still can not solve the problem, search for the exact error message on the Internet using Google. This activity will also give you an extra knowledge around your problem.

    Please do not ask other students in the group to solve your programming problems unless you tried all the above methods. If you need to ask a question be as specific as possible. Respect other people's time since all of us work under tight schedules.

    Fortran and Python

    In order to start learning Python you may want to start with Python introduction

    GNU Fortran compiler gfortran is used in our cluster. Prior to running any program code, it has to be compiled. Here are some links which will help you further:

    This copy is locally available at or
    Fortran tutorial:
    http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gfortran/
    Fortran tutorial:
    http://www.personal.psu.edu/faculty/h/d/hdk/fortran.html
    Fortran tutorial:
    http://www1.gantep.edu.tr/~andrew/ep241/docs/scope/
    Fortran tutorial:
    http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/fortran.html
    FortranGuide
     
    Fortran tutorial:
    http://gcc.gnu.org/wiki/GFortran
     
    Fortran compared with other languages:
    http://www.owlnet.rice.edu/~mech517/Books/oop11.pdf
    Fortran 90 Overview
     
    Fundamental optimisation rules in Fortran
    Optimisation in Fortran
    General information on compilers:
    http://en.wikipedia.org/wiki/Compiler
     
    Basic compilation and running of Fortran code:
    http://www.mesoscale.iastate.edu/agron505/compile.htm
     
    More complete guide on compilation and running programs in Fortran:
    http://www.fortran.gantep.edu.tr/compiling-g95-basic-guide.html
    http://gcc.gnu.org/wiki/GFortranGettingStarted
     
    Compiler options are described under:
    http://linux.die.net/man/1/gfortran

    The wrap-up script mpif90 binds gfortran and mpich to provide a convenient complication tool for the distributed memory architecture programs.

    Use mpif90intel instead of mpif90 if you need to test compile your code with the Intel Fortran compiler.

    The 32-bit machines in our cluster are also suitable for running parallel programs.

    Output to stdout and stderr is not printed out immediately after calling the print statement in GNU Fortran. Instead the output is buffered (which results in output delays) unless the program believes the output is done to a terminal. To force immediate output from your program you have to use the call flush statement in the code straight after the program action, e.g.:

      c = a + b
      print *, ";c: ", c
      call flush

      d = a * b
      print *, "d: ", d
      call flush

    Extra attention should be paid to the following points:

    • when your code is under the development, gfortran option -fbounds-check should be used for compilation
    • put "IMPLICIT NONE" at each program including the subroutines
    • ALL the variables are defined and initialised
    • do not presume a variable retains its value between invocations of a procedure unless it has the SAVE attritubute
    • the USE of modules is encouraged; the use of INCLUDE is okay for variable declaration but not for including blocks of executable statements within a code
    • for F90 codes, the INTENT of each subprogram's dummy argument should be explicitly declared
    High Performance Computing

    As for the information on HPC, please take a quick look at HPC history slides and HPC history handout

    As for the information on OpenMP, please take a quick look at OpenMP

    Gnuplot

    gnuplot is used in our cluster for data visualisation. Please do go through Gnuplot practice in order to acquire the minimum skills you need for our research. The data which you need to do the practice is data for Gnuplot practice. These are offered by Source of Gnuplot practice.

    When you put load '/software/FDTDstandard/gnuplot/2Dgnuaxis' before you run plot [][] '....' w l you will get a much more fantastic figure from gnuplot than usual.

    When you put load '/software/FDTDstandard/gnuplot/3Dgnuaxis' before you run splot [][][] '....' u 1:2:3 w l you will get a much more fantastic figure from gnuplot than usual.

    Tgif

    If you import some image into tgif environment, what you need to do to produce a pdf file is

    1. In tgif environment,file -> print/export format->select EPSI
    2. file -> print
    3. In a x-terminal, epstopdf something.eps which will produce something.pdf

    When you need to decorate the figures produced in gnuplot you can do

    1. set terminal tgif solid
    2. set output 'test.obj'
    3. plot 'test'
    to obtain a tgif file.

    When you do not need to decorate the figures produced in gnuplot you can do

    1. set terminal png
    2. set output 'test.png'
    3. plot 'test'
    or
    1. set terminal postscript eps enhanced color font 'Helvetica,10'
    2. set output 'test.ps'
    3. plot 'test'

    If you need to install tgif in Mac OS, then please see Tgif installation in Mac

    GPU

    In order to understand GPGPU, please read GPU intro 1 and GPU intro 2 and GPU intro 3 . In order to understand CUDAFortran , please read Fortran and Portland . For optimisation, please read Optimisation 1 , Optimisation 2 or Optimisation 2 , and documentation by NVIDIA . Kepler Architecture is also very informative.

    Compilation in Riken: Contribution from Mr. Loukas Xanthos

    1. Make sure that every file that contains CUDA fortran code, has the extension .cuf . For other languages, see the man pages of pgf90 compiler by $ man pgf90
    2. Run $ module load cuda
    3. Produce a Makefile which performs the compilation of
      pgf90 -ta=tesla:cc35 -tp=haswell-64 -Mpreprocess -Minfo -Mcuda=kepler+ -fast -o prog cudaFortranSource.cuf
      and compile the file cudaFortranSource.cuf .
      -ta is target accelerator (GPU) architecture and -tp is target CPU architecture. you may do a $pgf90 -fast -help in order to see what -fast does. For the rest parameters, you may consult the manual of PGI Fortran.
    Job submission in Riken: Contribution from Mr. Loukas Xanthos
    1. Job submission script
      CUDA jobs that use GPUs run at the ACSG (ACS with GPU) cluster. An ACSG node has 4 GPU cards and they are controlled to run only one job at one time. You should submit to gpu resource group and specify -x gpu_per_vnode option to use GPU(s).
      Thus, the structure of the batch script needed for the job submission to the ACSG is the following:
      cat go-gpu-project-loukas.sh
      #!/bin/sh
      # Great-Wave HOKUSAI
      #------ pjsub option --------#
      #PJM -L rscunit=gwacsg
      #PJM -L rscgrp=gpu
      #PJM -L vnode=1
      #PJM -L vnode-core=8
      #PJM -x gpu_per_vnode=1
      # Merge the standard error
      #PJM -j
      # Modify as needed
      #PJM -L elapse=1:00:00
      time ./prog
      ## End of file go-gpu-project-loukas.sh
    2. Job submission Add the job to the execution queue by running
      $ pjsub go-gpu-project-loukas.sh
    3. Job checking: To see the stats use the pjstat command. To delete a job use the pjdel command.

    Problem Solving

    The best way to approach a problem is to decompose it into smaller simpler parts. Decide on what parts you can solve, which tools you are going to use for a solution. Then think and write a draft algorithm for your solution. It can be made on paper. Afterwards you can start implementing it using the tools you have chosen. It is always a good idea to implement the algorithm in smaller chunks. Where each chunk is performing a specific function of the main algorithm. You can always write a very basic program testing a specific tool or algorithm functionality. If your prototype works correctly you can increase its functionality and integrate into the main program.

    To solve the file opening and reading problem in Fortan, decompose it into simpler tasks:

    • generating target file name,
    • opening target file,
    • reading data required,
    • closing target file

    All of those tasks can be written as 4 separate Fortran code. Afterwards you can put it all together into one main code. Finally, you may address the loop issue-and wrap the 4 functions up with a triple loop for i, j, and k values.

    As a rule of thumb try to search for problem solutions on the Internet using Google. This is the quickest way to find answers. Extract the error message of your code, paste it in Google and search for answers. Finding information on your own will make you learn and remember. It is much better for you, than me telling you the answer straight away.

    Running MPI Code

    When you need to learn MPI please go through http://staff.cs.manchester.ac.uk/~fumie/internal/MPI/

    Before running a parallel program with MPI an MPI service (daemon) has to be launched. Running on the background this daemon provides Message Passing functionality to your programs. Prior to do any MPI activity, you have to do the following(just once only when you join our cluster)
    $USERNAME has to be changed to your own username to carry out the following procedure.
  • Step 1
  • echo " MPD_SECRETWORD=treta " > /home/$USERNAME/.mpd.conf
  • Step 2
  • chmod 700 /home/$USERNAME/.mpd.conf

    Starting an MPI daemon:

    mpd &

    This daemon has to be started on each machine, where you intend to execute parallel program. All MPI daemons have to be connected to each other. This daemon ring connection is set up using the port number and IP address of the first machine, where "mpd" runs. This computer is called "MPI-host".

    Find out port number and machine name of mpd-host:

    mpdtrace -l

    The output is the following:

    <mpd_host_name>_<port> (<IP_address>)
    130-88-154-30_20115 (130.88.154.30)

    Extract port number, e.g. 20115 and IP address, e.g. 130.88.154.30.

    Login to another machine in the cluster using SSH:

    ssh -XC -l <username> -p 22111 <IP_address>
    ssh -XC -l maxim -p 22111 130.88.154.30

    Copy files/directories to another machine in the cluster using SCP:

    scp -P 22111 -C -r -p <filenameYouWantCopy> <username>@<IP_address>:<directoryname>
    scp -P 22111 -C -r -p /home/fumie/testdir tadashi@130.88.154.25:/local/tadashi/.

    Enter your password on SSH prompt. Now you have to start MPI daemon on this machine using port number and IP address extracted from the MPI-host.

    mpd -h <IP_address> -p <port>
    mpd -h 130.88.154.30 -p 20115

    The procedure mentioned above can be automated using /software/64/bin/initRing written by Mr. Philip Clapham.

  • Step 1
  • ~/mpd.hosts should have the ipaddresses of slave/client machines you would like to use for computation. ~/mpd.hosts should not have the ipaddress of the host machine.
  • Step 2
  • Login to the host machine
  • Step 3
  • Run /software/64/bin/initRing

    The MPI environment is ready. Time to compile a parallel code. Compiling MPI code involves calling of a wrapper script "mpif90". This script launches ordinary Fortran compiler (gfortran), but also links the code with MPI libraries.

    As an example, This name of the code can be anything of course.
    mpif90 <source> -o <executable>
    mpif90 source_code.F90 -o executable_code

    This command will compile a Fortran source code source_code.F90 into an executable file called executable_file.

    To run a parallel code on a number of processors write:

    mpiexec -n <proc_number> <executable>
    mpiexec -n 2 ./executable_file

    In general you should keep your program source code in your home directory because it will be backed up every day. Designate a different output directory to e.g.

    /local/<user_name>/<prog_name>/
    /local/maxim/fdtd/

    Specifying a local output directory will force your code to use the hard drive of a certain machine only. Using the home directory for output will synchronising the data files between all machines of the cluster and considerably slow down other people's computers. Please refrain from doing this.

    The IBM Redbook on "Practical MPI Programming" is a recommended reading.

    The most important Chapters are:

    1: Introduction to Parallel Programming pp. 1-10
    2: Basic Concepts of MPI pp. 11-40
    Appendix B: Frequently Used MPI Subroutines Illustrated pp. 161-206

    Although the environment setting and program compilation are strongly site-dependent, you can get a flavour of parallel programming by reading the following information:

    http://www.osc.edu/supercomputing/training/
    https://computing.llnl.gov/tutorials/mpi/
    http://fats-raid.ldeo.columbia.edu/pages/parallel_programming.html
    http://www.hpcwire.com/
    http://www.insidehpc.com/
    http://www.clustermonkey.net/

    FDTD_related

    How many timesteps you need to calculate ? If the frequency range of interest is from f1 Hz to f2 Hz, the FDTD calculation has to be done much more than 5/(f1 * delta_t) timesteps. Thus if you get N timesteps from the FDTD calculation and assess the accuracy in the frequency domain, you can take the frequency range starting more than 1/(N * delta_t) Hz.

    Skills for presentation and technical report writing and Viva

    Presentation skills

    Presentation is the activity to give(present) the audience your knowledge as a gift, not to speak about your idea which is speech.

    1. Attract the audience at the first page of the slide by showing the aim and the outline of the talk
    2. Keep your eye contact with the audience confidently
    3. Use main and second title on each slide
    4. Smile to make the mood relaxed
    5. Slow down your talk so that the audience have time to guess what happens next
    6. Make your conclusion concise
    7. Go through good presentation good talk terrible talk

    Online Introduction to Unix

    Technical report writing skills

    1. Attract readers with the title of your report.
    2. Make the structure of your report crystal clear.
    3. Use as figures and tables as much as possible to support understanding of readers.
    4. Produce the logical and accurate sentenses (not spoken English).
    5. Check your English using ispell and plagiarism checker .
    6. Conclude your report with concise statements.

    Viva

    1. Review the basics and every single formula of your work and how to utilise them prior to viva.
    2. Define any words in the Thesis.
    3. Make sure you understand the question clearly before you answer. If necessary, clarify the content of the question which you are supposed to answer.
    4. Do not attempt the questions which you don't know and be honest. Otherwise you might come across as untrustworthy to your examiner.
    5. Do not agree with every statement the examiner makes. Defend your work. Make sure the conclusions that the examiner draws from each question/section are correct.
    6. The story of your Thesis should flow nicely and the contribution should be clear.
    7. Have your journal paper published prior to your Viva
    8. Have a consistent values for variables in a PhD thesis and a good reason for the particular value

    LaTeX

    Prior to writing your report, you need to be able to write English properly. If you are not good at writing English, please attend Academic Writing Classes .

    Google-chrome and firefox have a function to check the fundamental English grammar mistakes by installing an add-on of grammarly .

    The basic guideline on the technical report writing and The best method for presentation of research results and The key points for journal writing are very useful stuff to read before you gain good amount of experience in writing technical report. Please check the marking schemes thoroughly prior to your writing. Prior to present your manuscript to me, please go through a check list for your manuscript preparation . Another very comprehensive and extensive guidance on technical writing in English is Academic Phrasebank .
    If you do need a proof-reading company the following is used by my previous students and did a good job

    • http://www.proofredit.com/
    • serviceessay@gmail.com Jon Sutcliffe

    You do not have to worry about the formatting as LaTex does the formatting based on your style file such as muthesis.cls. In order to compile the Latex source code in the cluster in our research group, you just need to run pdflatexfull report.tex or just pdflatexfull report Apparently the University now (Sep 2017) requires students to include a word count in the table of contents. So please use one of

  • \documentclass[12pt,MSc,wordcount]{muthesis}
  • \documentclass[12pt,MRes,wordcount]{muthesis}
  • \documentclass[12pt,PhD,wordcount]{muthesis}
  • Please see more details at http://studentnet.cs.manchester.ac.uk/resources/latex/

    An article on Wikipedia gives a short introduction on LaTeX — a document markup language extensively used in a scientific domain.

    Wikipedia also holds an entire LaTeX textbook which you can browse by topics.

    There's a University LaTeX users list. If you're interested, send an email from your University email account to LISTSERV@listserv.manchester.ac.uk with the body text "subscribe latex-users".

    The referencing is one of the very important part of your documentation. Please use the reference abbreviation based on List of IEEE Transactions and IEEE Editorial Style Manual.

    Movie can be included in LaTeX beamer as follows:

    1. Include the lines
      \mode<article>{ \usepackage{fullpage,hyperref,flashmovie} }
      \usepackage{media9}
      in your latex source code
    2. Copy
      /software/sl6.3/noarch-software/atbegshi.sty
      /software/sl6.3/noarch-software/infwarerr.sty
      /software/sl6.3/noarch-software/ltxcmds.sty
      into your directory which has your slide latex file exists
    3. Convert your images to avi format via
      convert *.ppm %03d.png
      ffmpeg -f image2 -r 8 -i %03d.png input.avi
    4. Convert your movie to swf format via ffmpeg -i input.avi -r 6000 output.swf
    5. The value of 6000 can be changed depending on the desired speed of your movie (the higher the value, the faster the movie).
    6. Call the movie like
      \begin{frame}{1D FDTD Simulation}
      \begin{center}
      \includemedia[activate=onclick, width=\linewidth,height=0.6\linewidth]{}{wave.swf}
      \end{center}
      \end{frame}

      inside your Latex source code (see Media 9 Package )
    7. Compile the latex file as usual using pdflatexfull
    8. View the pdf file using acroread which has to be version 9.4.1 under Unix/Linux. You can copy the template of this type of presentation from the cluster /software/FDTDstandard/latexslidemovie
    9. In order to produce the movie, copy files
      /software/FDTDstandard/TadashiMursoftMPI/output_FDTD-2d-xy-3-*.f90
      /software/FDTDstandard/TadashiMursoftMPI/output_FDTD-2d-yz-3-*.f90
      /software/FDTDstandard/TadashiMursoftMPI/output_FDTD-2d-xz-3-*.f90
      /software/FDTDstandard/TadashiMursoftMPI/qualitymovieshell
      /software/FDTDstandard/TadashiMursoftMPI/movieshell
      /software/FDTDstandard/TadashiMursoftMPI/showshell
      /software/FDTDstandard/TadashiMursoftMPI/pgm2ppm.f
      into the directory of your FDTD code.
      qualitymovieshell is the 2D image movie production and it needs pgm2ppm which is from pgm2ppm.f (gfortran -O4 -o pgm2ppm pgm2ppm.f)
      movieshell is the low-quality but quick movie production in 2D.
      showshell is the quick movie production in 1D.
    10. If you need to produce a movie in gif format, just run convert -resize 200x400 -delay 0.2 *.ppm test.gif

    Movie can be sent to our collaborator as follows:

    1. Go to https://www.youtube.com/
    2. Press sign in which is moving to gmail account login
    3. Do not login to your own gmail account but click sign in with a different account
    4. Click add account
    5. Login as parallel.electro@gmail.com with the password of Huygen's
    6. Select Fumie's Group
    7. Click Video
    8. Click Upload
    9. Select unlisted ,not public , and upload your movie
    10. Click done and copy the web-link indicated
    11. Send the web-link to our collaborators by email

    12. In order to delete the movie:
    13. Go to https://www.youtube.com/
    14. Login as parallel.electro@gmail.com with the password of Huygen's
    15. Select Fumie's Group
    16. Click my channel
    17. Click video
    18. Click the movie you would like to delete
    19. Click video manager and edit and select delete

    Word Document handling In the cluster there is a command of ooffice and you can handle some of the word documents. However it is difficult to convert the doc files into pdf file. The way around is as follows:

    1. run google-chrome
    2. open your gmail accont
    3. send an email to your gmail account with the word file as an attachment
    4. click "edit with google sheets", the mark at the most right handside
    5. click File -> download as -> select pdf
    6. go to /home/youruserame/Downloads to find the pdf file
    To BSc and MSc Students

    Practical skills such as the operating system, programming and documentation language knowledge are not going to be forced by Fumie unless your work has a significant impact on the mainstream of our research.

    In this case, you can learn Unix, Fortran, LaTeX and shell-scripting including the command-line utilities such as awk, sed, tgif and gnuplot independently.

    If you are given an account in our cluster, you can run graphical programs remotely from any of the computers in our cluster. If your home computer runs Mac OS X, install XQuartz and run Applications > Utilities > XQuartz.app Right click on the XQuartz icon in the dock and select Applications > Terminal. This should bring up a new xterm terminal windows. In this xterm windows, ssh -XC -l yourusername -p 22111 IPaddress-of-a-computer-in-our-cluster If your home computer runs Windows install the Xming and putty software and run Xming and then run putty and enter the IP address, and set the connection type to SSH and enable X11 forwarding (Connection > SSH > X11) and then put your username and passwd.

    For students in EEE, the risk assessment form is assessment form. You need to change the name of the student to your name obviously. Officially the signature of your supervisor and the student should be placed in the form. However, in reality, many people just attach the form at the end of report without any signatures. As for the technical writing, please see LaTeX section.

    For MSc students, the binding information is in handbook and guideline

    For BSc students in EEE, there are two major assessments prior to the final report. One is the progress report whose previous marking sheet is EEE UG progress report marking scheme. The other is the e-poster whose example is EEE UG e-poster example. Its previous marking sheet is EEE UG poster marking scheme.

    For BSc students, the Latex style files for final report is in 3rd year UG Latex Template.

    The final report and the viva coincide toward the end of April. The previous description of the viva procesure is EEE UG Viva Guidance note for staff. Please make sure that you take two hard copies of your executive summary with you at your viva. The previous marking scheme of the viva is EEE UG Viva marking sheet. EEE MSc marking scheme for oral presentation is nothing to do with the UG viva but it has some useful information on the oral presentation. The previous marking sheet for the EEE UG final report is EEE UG Marking sheet for final report by the second marker and EEE UG Marking sheet for final report by the supervisor. Some typical comments for the final report are EEE UG typical comments for final report

    For MSc students, the Latex style files for final report is in MSc Latex Template.

    When you tar -jxvf MScLatexTemplate.tar.bz2 you will find a directory called MScreport . The directory has three main Latex files of initial.tex , progressreport.tex , and final.tex

    For MSc students in Computer Science, initial.tex is the template for the initial report. Its previous marking scheme is CS MSc Marking scheme for Initial Report.

    progressreport.tex is the template for the progress report in Computer Science and for feasibility report in EEE. Its previous marking scheme for Computer Science is CS MSc Marking scheme for Progress Report and its actual form is CS MSc Marking form for Progress Report. Its previous marking scheme for EEE is EEE MSc Marking scheme for Feasibility Report. The feasibility report and the oral presentation tend to coincide. The marking scheme for the oral presentation is EEE MSc marking scheme for oral presentation.

    final.tex is the template for the MSc thesis. Its previous marking scheme for Computer Science is CS MSc Marking scheme for MSc thesis . Its previous marking scheme for EEE is EEE MSc Marking scheme for MSc thesis .

    Those who are in Computer Science, please run cp muthesis-CS.cls muthesis.cls prior to the compilation of final.tex

    Those who are in EEE, please run cp muthesis-EEE.cls muthesis.cls prior to the compilation of final.tex

    It it important to make best use of command.tex and fumieall.bib for the short cut for the mathematical variables and for the proper reference production.

    Prior to present your manuscript to Fumie, please go through a check list for your manuscript preparation .

    Accommodation Hunting and USS

  • Via the Accommodation Office at the University. This is the expensive but easiest option. You just need to go to the Office in person. It is located in the University Place building on Oxford road. Ask people for directions. University owned halls of residence are well maintained and provide central location and pastoral support. Also in halls you will have an opportunity to meat people from all over the world. Another benefit of the University hall is that the hall contract is a package deal. You will not have to worry about the Internet, water and electricity bills. Everything is provided by the University without any headache. But the drawback of the University hall might be a slightly higher price and noise by other residential students. List of all university halls with prices: http://www.manchester.ac.uk/undergraduate/accommodation/list/ Pick the city centre location. It is closer to our office. George Kenyon Hall, Grosvenor Street Building, Opal Hall, Bowden Court, Ronson Hall and Grosvenor Place are recommended.
    As for USS, from http://www.staffnet.manchester.ac.uk/human-resources/current-staff/pensions/faqs/ membership in each pension scheme is automatic unless you choose to opt out. If you do not want to remain, please contact the Pensions Office for a form to opt out. Pensions office contact information: http://www.staffnet.manchester.ac.uk/human-resources/current-staff/pensions/contact-us/
  • Manchester Student Homes. Privately owned, but University recommended accommodation. The University checks the flats and landlords before suggesting their flats and rooms to students. This option is relatively safe, but you might need a fried to share a flat or house with. Also you will have to sign contracts with electricity, water and internet provider companies. This might require some time to arrange. You may see the Manchester Student Homes offers online: http://www.manchesterstudenthomes.com/
  • Student Village Manchester. Private company providing accommodation in central location, but possibly cheaper than the University-owned halls. They also provide packaged (all inclusive) contracts. No separate contracts for water, electricity and internet. http://www.mcrstudents.com/
  • Gumtree. A universal website to advertise flat or room rentals. It is unpredictable. You can find a good deal, but also get into trouble with an unpleasant landlord: http://manchester.gumtree.com/
  • International Society of the Univeristy. You may visit the Society and look on their notice board for flat or room rentals. Also ask at the counter. These are very friendly people. There might be many international students looking for a flatmate there. http://www.internationalsociety.org.uk/
  • Fumie's availability

    I shall be available during 13:00-14:00 at https://zoom.us/j/96695299971 Meeting ID: 966 9529 9971 during the week except Friday at the moment

    News

  • Afnan's PhD viva was super-quick, less than 2 hours and went very well. Many congratulations to Afnan, all the hard work paid off. Bit of rest and a big feast to move on to the next journal paper is what she needs now :-)
  • Survey

  • login https://mbclick.manchester.ac.uk/
  • choose "mobile side" even when you are in front of a desktop PC or a laptop or a tablet or ...
  • choose an institution as *Demo*, not the University of Manchester
  • put "342" in the survey id
  • click join and select join a *survey* , not a session
  • fill the form
  • click "submit"
  • Lecture theatre

  • Press screen
  • Choose LectermPC
  • Press Display on the left
  • Press mainpage
  • Press visualiser
  • Press Display on the right
  • Press mainpage