At NERSC, a “project” is a group of users which have access to a common project disk space and have one or more UNIX filegroups. A single NERSC allocation (e.g. mp107) can have multiple projects. Typically each CMB experiment is its own project.
Each project comes with a special “project user” account. This account can be used to copy files into the project storage space so that they are not owned by individual users.
Todo
collabsu command
Todo
give and take example
Each project has a directory in:
/project/projectdirs/(project name)
and this area is accessible from all of the NERSC systems. The performance of this disk is not as good as the scratch filesystem, but is better than the filesystem where home directories are located.
The project directory is not purged, so members of the project can keep persistent data here. Every project can set their own policies, but we recommend limiting the areas where user-owned files can exist inside the project directory.
The project directory is fine for sharing data, but should not be used for software installations (especially python packages or software to be run at high concurrency). Instead, each project has a directory here:
/global/common/software/<project>
which is optimized for small files and fast reads at runtime across all machines. If you software is independent of particular compilers (i.e. pure python), then you can share one installation across all machines. Otherwise, you should create subdirectories for each machine:
%> mkdir -p /global/common/software/<project>/${NERSC_HOST}
and install machine specific software there.
Each project has a specific directory:
/project/projectdirs/<project>/www
Whose contents are visible on the web. Full details are available here. If users want to share personally-owned files, we recommend making a separate “users” directory under this and then one directory per user beneath that. Permissions must be world readable for the webserver to access these files.