Hi Tru,
The design of cryoSPARC is certainly intended to support the multi-user use case directly. Our idea is that cryoSPARC would be installed directly on the GPU node where it is running, and all lab users would create accounts in the web interface supplied by that single instance of cryoSPARC. Then everyone can share the GPUs and the cryoSPARC scheduler will automatically queue and manage jobs from multiple users, and each user will be able to see their own results and experiments.
When you install cryosparc, the installation directory is where cryoSPARC will store its internal database. This should ideally be on a redundant, writable location but it doesn’t have to be local to the GPU node where jobs and cryoSPARC itself will be running. So you can use an NFS mount for this, though generally we recommend a local drive so that the database can be read and written quickly to minimize UI lag.
During configuration after installation, cryoSPARC will ask you where you want it to write its output data. This should ideally be a redundant, large storage location that’s writable, some people use a cluster filesystem for that. Currently, cryoSPARC will write those output files as the user running the web service, and cryoSPARC user accounts are not linked to linux/unix user accounts but this is something we’re looking in to.
Datasets are read from anywhere you like, configured through cryoSPARC’s ‘bulk directories’ (basically shortcuts to common locations that will be browsable in the cryoSPARC UI) that you can configure using the command cryosparc configure bulk add <path> <name>
. The dataset locations only need to be readable by the user account running cryoSPARC, and datasets are transparently cached through the SSD (during configuration you specify a location for the cache).
Hope this helps,
Ali