Handbook for PhD Students

This PhD Handbook serves a dual purpose: it defines the research methodology of our group and gives general advice to students, and it sets out standards and processes which all students in the group are expected to strive for.

Compute resources and best practices direct link

Members of the group have access to a number of computing facilities.

  • University cluster: ECDF Eddie is a large cluster maintained centrally by the University. We have a group space under '/exports/csce/eddie/inf/groups/agents' which has 200.00 GB storage. Use the 'quota' command to check space usage. Please clean up your files when they are no longer needed. Consider using the alternative 'scratch' space if you temporarily need more space (see quick guide).
  • School clusters: The School maintains several of its own clusters which you can find here.
  • Group servers: The group maintains its own servers to which only group members have access. To get started, see the readme (if you can't see/access this page, ask Filippos to be added to code repo). Servers are currently reserved for PhD students and postdocs in the group; MSc/UG students should first seek approval.
  • JADE: We have access to the JADE cluster maintained by the Alan Turing Institute.

Best practices:

  • Delete unused files: Be mindful of the storage space you use up. Delete files if they are no longer used, or download them to your local machine.
  • Save space with type casting: Most programming languages provide operators to cast data into different types. You may be able to reduce your space usage considerably by casting double floats into single floats for storage, provided single floats give you sufficient accuracy. Similarly, consider casting 64 bit integers into 32 or 16 bit integers if their number ranges are sufficient.
  • Job priorities: Most job scheduling systems, such as the one used in Eddie, use priority-based job queues. User priority can depend on different factors, such as how many jobs the user has run recently and how many resources (CPUs, GPUs, RAM, time, etc) are requested for the job. Plan your resource requirements carefully and request as little as necessary to increase your priority.
  • Code profiling: For very time-consuming jobs, it can be a good idea to do some performance profiling of your code and consider whether there are bottlenecks that can be optimised in some suitable way.