In this exercise you will learn how to login and run commands on our infrastructure.
As mentioned in the lecture, you absolutely need a terminal emulator:
optionally you may want:
sftp://tcopt2.chem.uzh.ch
as the address in your file browser and you should be able to browse your home directory after logging invim
, nano
or emacs
via SSH. Please note: It is important that your editor supports Unix line endings. If in doubt, use one of the mentioned editors on the server, or an advanced plain text editor like Atom (plus the line-ending-selector-unix plugin) or Notepad++ on your local machine.ssh -X studentXX@tcopt2.chem.uzh.ch
ssh -X studentXX@tcopt2.chem.uzh.ch
First configure Putty (only required on the first run) as follows:
tcopt2.chem.uzh.ch
SSH
tcopt2
as the name of the session below Saved Sessions and save the settings a first timeConnection > SSH > X11
from the Category
list and enable the option Enable X11 Forwarding
Session
from the Category
list and click Save
againThen continue as follows to login:
tcopt2
to start the connectionSince there are numerous applications with different and possibly conflicting requirements, the module system is used. This means that only basic commands are available until explicitly loaded.
To list all available modules:
$ module avail
while using
$ module list
gives the list of loaded moules.
To load the CP2K module used in this course, use:
$ module load cp2k
When you list the loaded modules again at this point (see command above), you will notice that the list has changed.
Now run the following command to verify that the CP2K executable is available:
$ cp2k.popt --help
Which should give you the output
cp2k.popt [-c|--check] [-e|--echo] [-h|--help] [--html-manual] [-i] <input_file> [-mpi-mapping|--mpi-mapping] <method> [-o] <output_file> [-r|-run] [--xml] starts the CP2K program, see <https://www.cp2k.org/> The easiest way is cp2k.popt <input_file> The following options can be used: -i <input_file> : provides an input file name, if it is the last argument, the -i flag is not needed -o <output_file> : provides an output file name [default: screen] These switches skip the simulation, unless [-r|-run] is specified: --check, -c : performs a syntax check of the <input_file> --echo, -e : echos the <input_file>, and make all defaults explicit The input is also checked, but only a failure is reported --help, -h : writes this message --html-manual : writes a HTML reference manual of the CP2K input in the current directory. The file index.html is a good starting point for browsing --license : prints the CP2K license --mpi-mapping : applies a given MPI reordering to CP2K --run, -r : forces a CP2K run regardless of other specified flags --version, -v : prints the CP2K version and the SVN revision number --xml : dumps the whole CP2K input structure as a XML file xml2htm generates a HTML manual from this XML file
Another program we need for visualization is VMD. Running this remotely is unfortunately error prone which is why you should download it from the link above and install it locally on your machine.
Upon login, the shell (bash
in our case) executes a number of files if they exist. One of them is the .bashrc
. To prepare it for management using the the module
command, simply execute the following once:
$ echo 'module load ' >> ~/.bashrc
after that you can add and remove modules to be loaded at startup using module initadd
or module initrm
.
To add cp2k
, run for example:
$ module initadd cp2k
to remove cp2k
again from the list of modules to load:
$ module initrm cp2k
Alternatively you can of course simply edit .bashrc
using your favorite editor and add a line like module load vmd cp2k
by yourself.
To avoid having to type the password every time you log in (and to increase the security), a public-private key pair can be used for authentication instead.
First generate a key-pair on your local machine by running the following in a terminal/shell:
$ ssh-keygen
and accept the defaults proposed and do no set a password.
Upload the public key from your local machine to tcopt2:
$ scp ~/.ssh/id_rsa.pub studentXX@tcopt2.chem.uzh.ch:~/
Now login to tcopt2.chem.uzh.ch
and move the uploaded public key to the right place and set the access permissions correct:
$ mkdir -p .ssh $ chmod 0700 .ssh $ mv id_rsa.pub .ssh/authorized_keys
When connecting to the server from your local machine now, use:
$ ssh -i ~/.ssh/id_rsa studentXX@tcopt2.chem.uzh.ch
First login to the server as above and leave the terminal window open.
Then generate a key-pair on your local machine as follows:
condensed_matter.ppk
$ mkdir -p .ssh $ chmod 0700 .ssh $ nano -w .ssh/authorized_keys
CTRL+X
, press Y
to save the file and confirm the name by pressing ENTER
exit
to close the connectionReconfigure PuTTY to use the generate key:
tcopt2
and press Loadcondensed_matter.ppk
you generated earlierThe following instructions apply to OSX and Linux.
On your local machine add the following part to the file .ssh/config
in your home directory:
Host tcopt2 HostName tcopt2.chem.uzh.ch User studentXX
after which you will be able to connect to tcopt2
simply by using
$ ssh tcopt2
If you have setup key-based authentication as shown above, augment the entry to the following instead, to always use key-based authentication without having to specify -i ~/.ssh/id_rsa
manually:
Host tcopt2 HostName tcopt2.chem.uzh.ch User studentXX IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes PreferredAuthentications publickey