.. _systems:
Overview of the Systems
==============================
NERSC consists of multiple machines and services, each of which are useful for different tasks.
Connecting
-----------------
Although you can ssh directly to NERSC machines, you will likely have an unpleasant typing experience and may be interrupted by dropped connections, etc. A much better technique is to download the "NX client" software. This provides a remote desktop (KDE, just like the late 1990's!) and allows you to disconnect / reconnect without losing work and time. `Follow instructions here `_.
Within the NX client settings, I suggest clicking on the "Display" options and choosing:
* "Fit to Window"
* Click on "Change settings" and select quality at one step below maximum. Then change resolution to as low as you can stand (e.g. 1024x600).
These will ensure that you have a small amount of data being sent back and forth over the network, but still have minimal pixelization artifacts. Such settings usually work well even when tethering to a mobile phone for example.
Cori
-----------------
This sytem has 2 types of nodes:
* `9000 nodes of Intel KNL CPUs `_ with 68 cores per node. Useful for highly threaded workflows. Serial code (pure python, outside of numpy/scipy) runs slow.
* `1600 nodes of newer Intel Haswell CPUs `_ with 32 cores per node. Great for interactive python use. Good for small jobs.
Edison
----------------
This system has `5500 nodes of older, traditional CPUs `_, with 2x12 core chips per node. Good for large jobs that use code which does not run well on the cori KNL nodes.
Disk Space
--------------------
All users have a small home directory for storing things like scripts, git checkouts, etc. This space is not purged, but is fairly slow. **Do not read or write large data files here**.
Each individual user has 20TB of personal "scratch" storage. This location is different on each machine but can always be found in the "$SCRATCH" environment variable. This disk is very fast, but is purged after some weeks. Copy any data you want to save to a project directory or your home directory. You can see your current disk usage with::
%> myquota
Each project has shared storage in /project/projectdirs/(project name), which is typically 20TB, but can be increased if we fill that up. This filesystem is not purged. You can see current project disk usage with::
%> prjquota
More details on filesystems are `here `_.
Data Transfer and Backup
--------------------------------
If you are transferring large amounts of data to or from NERSC, and / or backing that data up to HPSS (multi-petabyte tape system), then you should carefully read more about these services:
* `Data transfer nodes `_
* `HPSS use `_