We are buying a new server/compute resource for analyses. Wondering if you have thoughts about what the best features would be for speeding up fMRI analyses for large samples? Cores + threads, graphics card, something else? Like, what's your dream machine (outside of an institutional cluster)?
Here are a couple of options IT sent our way. I know there's no "right" answer - just hoping the make a more informed choice.
I'm not sure exactly what you need and any other software you might be running, but I'll give you a couple thoughts anyhow. We have the advantage of the Biowulf cluster for much of our local processing.
AFNI won't make use of the graphics card memory, so the upgraded choice won't matter for AFNI usage (at least, not yet). If you are planning to setup remote viewing with NoMachine or VNC solutions, then you may need it. Remote disk access with nfs and local viewing is usually more cost effective, but that can depend on network/work from home Internet speeds. If you are using other software that uses the graphics memory, maybe some machine learning software packages.
Disk storage seems much more important given the amount of data most generate for FMRI processing, so the larger configuration looks better, and you may want to upgrade that unless you move all the data regularly to another data server. You will probably want a backup server too. The RAID can include some failover, so you won't get that full capacity.
Dividing the number of CPUs and the memory by the number of concurrent users will give you an idea of how much each user will get on average, if everyone is processing their data at the same time. I think you should allow for about 16GB per typical FMRI subject at a time, but that depends on the data you typically analyze.... If you expect 10 users at the same time, then 160GB of memory will be needed plus some slack. AFNI allows for multi-threading with OpenMP for key steps, so more threads help, up to a point.
Make sure you have a place to store this server. Many require a rackmount? Some are fairly noisy (I've got one nearby my desk...) , so consider the noise level and the rest of the environment like whether it needs special temperature control, UPS backup, 3-phase high-voltage circuits,....
I'll add that I've generally found buying multiple middle-level computers to be more useful than investing in a single huge machine. So if you're looking at a server that costs $10,000 for 160GB of RAM and 4TB of storage with 128 processors, you could likely get more mileage out of 2 systems that have half of those specs with half the cost each.
You could still use a scheduler to allow someone to operate multiple analyses across all the machines but have the added advantages that these mid-level computers will be smaller, quieter, and could be hooked up to a monitor (or two) and made to be processing workstations instead of just a processing server. They could share the same storage pool via a Network Attached Storage (NAS). These NAS devices could automatically upload data to another backup system in the cloud (some are secure and compliant with medical imaging data).
As Daniel said, noise is a serious concern as is heat (servers tend to generate a lot of it). So if you don't have a dedicated server room, you could look at the "prosumer" style hardware and do quite well! If I were equipping a lab today I would go with multiple Mac Studios with the M2-Ultra chips. For storage I would look at QNAP and Synology with possible M.2 SSD to improve caching when you're processing the data.
Thanks so much for this suggestion! I hadn't thought of doing something like that!
The
National Institute of Mental Health (NIMH) is part of the National Institutes of
Health (NIH), a component of the U.S. Department of Health and Human
Services.