GETTING STARTED

This page contains some tips on how to get started on the supercomputers at Parallab. The information is intended for both users that are new to the these machines and to users that are new to UNIX-like operating systems.

We created many other pages that explain what programming languages, compilers, development tools (debugging, profiling, analysis), parallel programming paradigms, etc. are available for the machines. The main entry point to the support pages is here.

  • The IBM e1350 cluster is called fimm.bccs.uib.no. It is described here. The computational heart consists of 86 nodes, each with 2 processors (cpus) and 2/4/8 Gigabyte of memory. You can only connect to one node (the 'front-end'). The nodes are interconnected with Gigabit Ethernet, but a subset of the nodes also has a faster interconnect. The operating system is Linux Redhat.

  • The Cray XT4 is called hexagon.bccs.uib.no. It is described here. The computational heart consists of 1388 nodes, each with 4 processors (cpus) and 1 or 2 Gigabyte of memory. You can only connect to one node (the 'front-end'). The operating system is Cray UNICOS/lc which uses Suse Linux on the frontends (login-nodes) and a customized light-weight Linux kernel on the compute nodes.

  • Password. The very first time you connect to the machine (with ssh), you are required to change the password that you were given. Some tips for good passwords can be found here.

  • Your directories. See a separate page for more information about the file systems on fimm and your disk quota. See this page for more information about the file systems on hexagon.

  • scp/sftp. The machines are stand-alone systems. The machines do not (NFS-)mount remote disks. Therefore you must explicitly transfer any files you wish to use to the machine by scp/sftp.

  • chsh. You may want to change the shell that you get by default. Use the (interactive) command 'chsh' to check your current shell-type and to modify this (if needed). The C shell 'tcsh', the Korn shell 'ksh', and the Bourne-Again shell 'bash' are popular ones.

  • Running jobs on the machine. You can execute your jobs by submitting them to the batch system. We made separate pages that explain how to use the batch system. The pages explains how to write job scripts, and how to submit, manage, and monitor jobs.

    It is not allowed to run long or large memory jobs interactively (i.e., directly from the command line).

  • Manual pages. If you know the UNIX-command that you would like to use but not the exact syntax, consult the manual pages on the system to get a brief overview. Use 'man [command]' for this. For example, to get the right options to display the contents of a directory, use 'man ls'. To choose the desired options for showing the current status of processes, use 'man ps'. On the Regatta, use 'man xlf' for the options of IBM's Fortran compiler.

  • Text editing. Popular tools for editing files on UNIX-based systems are 'vi' and 'emacs'. Unfortunately the commands within both editors are quite cryptic for beginners. It is probably wise to spend some time understanding the basic editing commands before starting to program the machine.
    • vi. Full-screen editor. Use 'man vi' for quick help.
    • emacs. Comes by default with its own window. Type 'emacs -nw' to invoke emacs in the active window. Type 'Control-h i' or follow the menu 'Help->manuals->browse-manuals-with-info' for help. 'Control-h t' gives a tutorial for beginners.
    • nedit. A more 'user-friendly' text editor that requires less knowledge to get started. Comes with its own window and help menus.

  • Environment variables. The following variables are automatically available after you log in:
    	USER : your account name 
    	HOME : your home directory (full path)
    	PWD  : your current working directory (full path)
    	
    You can use these variables on the command line or in shell scripts by typing $USER, $HOME, etc. A complete listing of the defined variables and their meanings can be obtained by typing 'printenv'.
    You can define (and redefine) your own variables by typing
    	setenv [VARIABLE] [VALUE]    (csh/tcsh shell) 
    	export [VARIABLE]=[VALUE]    (ksh shell)
    	

  • Aliases (for csh/tcsh users). If you freqently use a command that is long and has for example many options to it, you can put an alias (abbreviation) for it in your ~/.cshrc file. For example, if you normally prefer a long listing of the contents of a directory with the command 'ls -laF | more', you can put the line
    alias ll 'ls -laF | more' 
    	
    in your ~/.cshrc file. You must run 'source ~/.cshrc' to update your environment and to make the alias effective. From then on, the command 'll' is equivalent to 'ls -laF | more'.
    Make sure that the chosen abbreviation is not already an existing command, otherwise you may get unexpected (and unwanted) behaviour. You can check the existence and location of a program, script, or alias by typing
    which [command]
    	whereis [command]
    	

  • ~/bin (for csh/tcsh users). If you frequently use a self-made or self-installed program or script that you use in many different directories, you can create a directory ~/bin in which you put this program/script. If that directory does not already exist, you can do the following. Suppose your favourite little program is called 'takk' and is in your home ($HOME) directory.
    	cd $HOME
    	mkdir bin
    	cp takk bin/.
    	setenv PATH $PATH:$HOME/bin
    	
    PATH is a colon-separated list of directories that are searched in the order in which they are specified whenever you type a command. The first occurrence of a file (executable) in a directory in this PATH variable that has the same name as the command will be executed (if possible). In the example above, the 'setenv' command adds the ~/bin directory to the PATH variable and any executable program/script you put in the ~/bin directory will be recognized as a command. To add the ~/bin directory permanently to your PATH variable, add the above 'setenv' command to your ~/.cshrc file and update your environment with 'source ~/.cshrc'.
    Make sure that the names of the programs/scripts are not already existing commands, otherwise you may get unexpected (and unwanted) behaviour. You can check the contents of the PATH variable by typing
    printenv PATH
    	echo $PATH
    	
More advanced usage .....

  • CVS is a version control system, which allows you to keep old versions of files (usually source code), keep a log of who, when, and why changes occurred, etc. CVS helps to manage releases and to control the concurrent editing of source files among multiple authors. For remote usage you need to set two environment variables (e.g. in your ~/.cshrc file):
    	setenv CVS_RSH ssh
    	setenv CVSROOT :ext:[username]@[cvs hostname]:/[cvs rootpath]