:orphan: See also :ref:`imada-it`. .. _imada-comp-lab: IMADA Virtual Computer Lab ========================== The Computer Lab is a collection of servers available for students and employees at IMADA to conduct ordinary course teaching and small-scale experiments. The system should not be used for backup or very long-running experiments, as it does not it self have backup and may be completely reinstalled when needed. Any important data generated on the system should therefore be transferred elsewhere. Access ------ The IMADA Virtual Computer Lab consists of 4 servers accessible via SSH by students and employees at IMADA. Their hostnames are - ``imada0.stud-srv.sdu.dk`` - ``imada1.stud-srv.sdu.dk`` - ``imada2.stud-srv.sdu.dk`` - ``imada3.stud-srv.sdu.dk`` The servers are only accessible internally at SDU, e.g., being on the SDU network. This can be achieved by either being physically at SDU using the eduroam network or enabling the `SDU VPN `__. If you have a student account, your username is simply your ordinary username, e.g., ``john42``. If you have an employee account your username is either your ordinary username or your ordinary username with domain prefix, e.g., either ``john`` or ``nat-sdu\john``. Whether you need to prefix with domain as employee depends on when your account was created. If it is later than approximately 2019 then the prefix should not be needed. .. note:: If you need to prefix with domain, and type the username on the command line, then the backslash needs to be escaped. For example .. code-block:: console > ssh nat-sdu\\john@imada0.stud-srv.sdu.dk If you can not log in, your account may not have the right permissions. See :ref:`imada-it` for information on whom to contact. .. note:: The first login to a machine each day may take 30-60 seconds due to the authentication procedure. At subsequent logins the procedure uses cached information and it should proceed with no significant delay. See also :ref:`imada-ssh-key`. System Details -------------- Each server is installed with Ubuntu 20.04 and a range of software needed for teaching and research. If you as an employee need additional software please contact us to find a solution. If you as a student need additional software, please contact your teacher/supervisor. .. note:: For Python packages only a small subset is installed globally. You can as an individual user simply use ``python3 -m pip install thePackageName`` to install additional packages for your self on a particular machine. Each server has a separate file system, except for the folder ``/shared/`` which is common among all servers (and users). If you have code, data, programs, that should used by all servers you can place it here. In general you should place it inside a subfolder with your own username to not clutter ``/shared``. The shared folder is by default for sharing files among machines, not users. However, teachers that wish to share files with course participants can still change ordinary file permissions to allow this. In special cases it may be beneficial to share data with only selected users, in which case you must use ACLs on the files/folders in the ``/shared`` folder (see e.g., `here `__). However, as the usernames and group names are local to each machine so you must use the exact ID of each for the ACL commands. To find those IDs use the ``id`` command and suffix usernames with their full domain name. For example, to find the ID of ``jlandersen`` you must write ``id jlandersen@NAT.C.SDU.DK``. Graphical Interface ------------------- While the servers are only remotely accessible it is possible to forward GUIs to your computer. This can be done either using classical X-forwarding, i.e., passing ``-X`` to ``ssh``, or using `X2Go `__ to get a remote desktop experience. An X2Go client is available for both Windows, macOS, and Linux. .. important:: When creating an X2Go session, it is important that you change the session type to "XFCE", which is the desktop environment installed on the servers. .. note:: If you use an M1 macOS machine, and use X-forwarding in SSH with XQuartz, and run Java applications, then you may encounter `a graphics bug `__. To circumvent the bug you must pass the argument ``-Dsun.java2d.xrender=false`` to ``java`` when launching these applications, though they may run slightly slower.