冷冻电镜CryoSPARC架构(工作站、集群、存储服务器)和系统硬件配置要求
CryoSPARC 系统架构概述
CryoSPARC是一个后端和前端高性能计算软件系统,为单颗粒冷冻电镜提供数据处理和图像分析功能,以及丰富的基于浏览器的用户界面和命令行工具。
CryoSPARC 可以部署在本地或云中。
主工模式
该系统基于主-工作模式。
-
主进程(Web 应用程序、核心应用程序和 MongoDB 数据库)在一台机器(主节点)上一起运行。主节点需要相对轻量级的资源(4+ CPU、16GB+ RAM、250GB+ HDD 存储)
-
工作进程在具有 NVIDIA GPU(工作节点)的任何可用/配置的计算机上运行。worker 负责所有实际的计算和数据处理,并由主节点调度。
同一个节点既可以作为主节点,也可以作为工作节点。
主工作架构允许在各种硬件上灵活地安装和扩展 CryoSPARC,包括单个工作站、工作站组、集群节点、HPC 集群、云节点等。
典型的 CryoSPARC 系统设置
CryoSPARC可以在单个实例中支持所有典型设置的异构混合。这意味着您可以先在单个工作站上安装 CryoSPARC,然后随着数据处理需求的扩展而连接工作节点或集群。
CryoSPARC可以在单个实例中支持所有典型设置的异构混合。这意味着您可以先在单个工作站上安装 CryoSPARC,然后随着数据处理需求的扩展而连接工作节点或集群。
单机---工作站
CryoSPARC主进程和CryoSPARC工作进程可以在同一台计算机上运行。唯一的要求是GPU资源可用于CryoSPARC工作进程。这是最简单的设置。
主工
在主工作程序设置中,CryoSPARC主服务器安装在轻量级机器上,工作进程安装在一个或多个GPU服务器上。这是安装 CryoSPARC 的最灵活设置。此设置有三个主要要求,本文档的安装部分也对此进行了更详细的说明:
1) 所有节点都可以访问共享文件系统。此文件系统是项目目录所在的位置,允许所有节点在作业开始和完成时读取和写入中间结果。
2) 主节点对每个工作节点都具有无密码 SSH 访问权限。SSH 用于从主节点在工作节点上执行作业。
3) 所有工作节点都对主节点上的10个连续端口具有TCP访问权限(默认端口为39000-39009)。这些端口用于通过基于 HTTP 远程过程调用 (RPC) 的 API 请求进行元数据通信。
也可以使用其中一个工作节点作为主节点,在这种情况下,不需要独立的主节点。在高负载下,如果 GPU 工作节点挂起或 RAM 耗尽,这可能会导致不稳定,从而导致运行 Web 应用程序和数据库的主进程也挂起。
集群
主节点还可以生成作业或将作业提交到集群调度程序系统(例如,Slurm Workload Manager)。这种集成是透明的,其工作方式类似于上面解释的主工作程序设置,只是所有资源调度都由集群调度程序处理,而 CryoSPARC 的调度程序仅用于作业的编排和管理。类似的要求也存在:
1) 所有节点都可以访问共享文件系统。此文件系统位于项目目录所在的位置,允许所有节点在作业开始和完成时读取和写入结果。
2) 所有worker节点对主节点上 10 个连续端口都有 TCP 访问权限(默认端口为 39000-39009)。这些端口用于通过基于 HTTP 远程过程调用 (RPC) 的 API 请求进行元数据通信。
对于集群设置,主节点可以是常规集群节点(甚至可以是登录节点),如果这样可以简化网络要求,但 CryoSPARC 主进程必须连续运行。如果要在常规群集节点上运行主节点,则可能需要在交互模式下从调度程序请求该节点,或者为无限期运行的作业请求该节点。
项目目录是在 CryoSPARC 用户指定的位置创建的。如果管理多用户集群实例,请确保用户在主节点和工作节点都有权访问的位置创建项目目录。
集群作业调度软件
CryoSPARC支持大多数集群调度软件,包括SLURM、SGE和PBS。请参阅此处,了解常用调度程序的集群配置示例。
CryoSPARC 集群集成脚本示例CryoSPARC系统要求
除非另有说明,否则以下是系统中每个主节点和工作节点的要求。
配置 |
技术规格 |
硬件架构 |
x86-64(Intel 或 AMD) |
操作系统 |
|
Shell |
Bash |
用户帐户 |
cryosparcuser |
软件 |
Nvidia 驱动程序(仅限工作节点)。 |
文件系统 |
跨所有节点共享文件系统 |
CryoSPARC 主节点配置要求
以下是特定于主节点的要求。
主要配置 |
最低配置 |
推荐配置 |
CPU |
4核以上 |
8核以上,2.8GHz+ |
内存 |
16GB+ |
32GB |
系统盘 |
250GB+ |
500GB SSD |
高速缓存盘 |
不需要 |
不需要 |
GPU |
不需要 |
不需要 |
网口 |
千兆端口-存储服务器 |
万兆端口-存储服务器 |
建议将 10Gbps 连接到存储服务器,因为原始冷冻电镜电影的大小可能为几 TB,并且 I/O 瓶颈比 CryoSPARC 中预处理作业的处理能力更受关注。
尽管建议使用具有较高内核数的 CPU,但由于主进程的实现方式,具有更快时钟频率的 CPU 更具优势。
需要足够的系统存储来托管安装包和数据库文件夹。每个 CryoSPARC 项目占用 100MB 到 5GB 的数据库存储空间,具体取决于项目的规模。500GB 足以满足大约 200 个中型项目的需求。请注意,这不包括大容量存储中 CryoSPARC 项目数据所需的空间,对于较大的项目,这些空间可能以 TB 为单位。cryosparc_master
计算节点/集群服务器最低要求
以下是对每个计算节点/集群服务器要求。
主要配置 |
最低配置 |
推荐配置 |
CPU |
2核以上/每块GPU |
4核以上/每块GPU |
CPU-内存带宽 |
50+GB/s |
100+GB/s |
内存 |
32GB+ /每块GPU |
64GB DDR5/每块GPU |
系统盘 |
25GB+ HDD |
50GB+ SSD |
高速缓存盘 |
1TB SSD |
2TB PCIe SSD |
GPU |
1+ NVIDIA GPU , 支持CC 3.5+, 11GB+ 显存 |
1+ NVIDIA Tesla V100, RTX2080Ti, RTX3090等 |
网口 |
千兆端口-存储服务器 |
万兆端口-存储服务器 |
高频CPU、内存带宽 对于CryoSPARC Live预处理尤为重要。
系统RAM容量 对于计算节点非常重要,应与系统上可用于处理的GPU数量成比例缩放。
需要足够的系统存储来托管安装包。cryosparc_worker
快速本地存储也是必要的,因为重建工作需要随机访问粒子图像。在这种情况下,SSD提供高吞吐量。有关详细信息,请参阅固态存储部分。
操作系统
目前,Ubuntu Desktop 16+是与 CryoSPARC一起使用的最佳操作系统,因为在每次发布之前都会在此平台上进行广泛的测试。Ubuntu 22.04在CryoSPARC v3.4.0 及更早版本中不受支持,但在CryoSPARC v4.0.0及更高版本中受支持。
在较旧的Linux内核(例如,CentOS 7 中的 3.10)上使用 CUDA 应用程序时,存在各种未解决的不兼容和不稳定问题。一些用户报告了在使用CentOS 7时偶发的 cufftInvalidPlan和cuMemHostAlloc Failed 错误。
磁盘和压缩
快速磁盘是高效处理冷冻电镜数据的必要条件。在预处理阶段(例如,运动校正)需要快速的顺序读/写吞吐量,其中数据量非常大(数十TB),而计算量相对较低(运动校正的顺序处理,CTF估计,粒子拾取等)。
RAID 配置中的旋转磁盘阵列用于存储大型原始数据文件,而群集文件系统通常用于较大的系统。根据经验,要在预处理期间使4块GPU计算机饱和,需要 1000MB/s 的持续顺序读取。
压缩可以大大减少存储在电影文件中的数据量,也可以大大加快预处理速度,因为解压缩实际上比直接从磁盘读取未压缩的数据更快。通常,计数模式的影片文件以 LZW 压缩的 TIFF 格式存储,没有增益校正,因此增益参考文件是单独存储的,并且必须在处理过程中即时应用(CryoSPARC 支持)。压缩增益校正影片通常会导致压缩比比压缩增益前校正(整数计数)数据差得多。
CryoSPARC 原生支持LZW压缩TIFF格式、EER格式和BZ2压缩MRC格式。无论哪种情况,增益基准都必须作为MRC文件提供。TIFF、EER和BZ2压缩作为多核解压缩流即时实现。
固态存储 (SSD)
SSD 空间在每个工作节点的基础上是可选的,但强烈建议用于将使用粒子图像运行优化和重建的工作器节点。为预处理(运动校正、粒子拾取、CTF 估计等)保留的节点不需要具有 SSD。
CryoSPARC 颗粒处理算法依赖于随机存取模式和多次遍历数据,而不是一次按顺序读取数据。使用允许快速随机读取的存储介质将大大加快处理速度。
CryoSPARC 以透明方式管理每个工作节点上的 SSD 缓存。文件会自动缓存,在同一项目中重复使用,并在需要更多空间时删除。有关详细信息,请参阅 SSD 缓存指南。
典型的单颗粒冷冻电镜数据集的大小将决定您选择使用的 SSD 的大小。有关示例计算,请参阅:
图形处理单元 (GPU)
至少有一个工作节点必须具有可用于运行完整CryoSPARC作业集的GPU。非GPU工作线程可以运行仅CPU作业。
每个GPU中的GPU内存(VRAM)限制了用于重建的最大颗粒盒尺寸。通常,具有12GB VRAM的GPU可以处理高达 700^3 的盒子大小,在某些作业类型中最多可以处理 1024^3。有关详细信息,请参阅以下教程。
请确保每个连接的工作人员都包含与您的 GPU 兼容的最新版本的 Nvidia 驱动程序。有关详细信息,请参阅此部分。在此处下载适用于您的 GPU 的最新驱动程序。请访问故障排除以解决常见的 GPU 错误。
选择 GPU
在获取用于CryoSPARC的GP 时,以下注意事项可能会有所帮助。
-
CryoSPARC几乎完全在GPU上使用单精度操作。因此,消费卡通常比企业卡具有更好的性价比。企业卡确实有其自身的优势,例如可靠性、更好的服务器冷却、更长的支持时间线以及与可能使用双精度数学的其他应用程序的兼容性。
-
GPU 最重要的指标是设备VRAM内存带宽。这是GPU可以从自己的内存读取和写入的速率。这通常比GPU核心数或时钟速度更重要,因为GPU上的几乎所有操作都受到内存带宽的限制。选择GPU时,这是要比较的主要指标(以及价格)。例如,NVIDIA RTX3090在 936 GB/s 带宽下具有24GB内存,NVIDIA A100在1935GB/s带宽下具有高达80GB的内存,而NVIDIA A4000在16GB/s带宽下具有448GB内存。
-
GPU内存容量是3D优化期间可以处理的盒子大小的主要限制因素。除此之外,内存大小对速度没有任何影响。11GB 消费类卡通常可以处理所有处理步骤(包括 K3 数据的运动校正等),颗粒盒尺寸高达600^3。
-
GPU-CPU互连带宽(例如。PCIE)通常不是瓶颈(例如,对于大多数作业类型,我们在 8 倍或 16 倍 PCIE 通道上获得类似的基准性能),但从集群存储/本地 SSD 读取数据的 IO 带宽通常是影响性能的重要因素。对于预处理和 CryoSPARC Live 尤其如此,因为电影、显微照片和颗粒需要快速读取、写入和传输以跟上收集的步伐,而 GPU 可以非常快速地处理数据。
-
在许多情况下,较旧或较慢的 GPU 通常可以与最新、最快的 GPU 几乎相同,因为 CryoSPARC 中的大多数计算不受 GPU 计算速度的瓶颈,而是受 GPU 内存带宽和磁盘 I/O 速度的瓶颈。
浏览器要求
CryoSPARC Web 界面在最新版本的 Google Chrome 上效果最佳。Firefox 和 Safari 也是一种选择,尽管某些功能可能无法按预期工作。不支持 Internet Explorer。有关访问 CryoSPARC Web 界面的更多信息,请参阅本指南。
其他配置说明
网络可访问性
网络安全必须是安装和持续管理任何 CryoSPARC 实例的重要因素。必须仔细控制对托管 CryoSPARC 实例的网络的访问,因为 CryoSPARC 实例没有针对网络上的恶意行为者进行安全强化。
CryoSPARC设计为仅在受信任的专用网络中运行。如果没有单独的受控身份验证层,CryoSPARC 实例不应直接托管在 Internet 或不受信任的网络上。
CryoSPARC的用户界面确实包括一个用户管理系统,CryoSPARC用户帐户和密码有助于控制在受信任的专用网络中对界面的访问,但请注意,CryoSPARC密码并非旨在防止恶意访问。
根访问权限
CryoSPARC系统经过专门设计,不需要root访问权限即可安装或使用。这样做的原因是为了避免在以 root 用户身份托管网络应用程序(Web 界面、数据库等)时可能发生的安全漏洞。因此,必须以常规 UNIX 用户 () 的身份安装和运行 CryoSPARC 系统,并且所有输入和输出文件位置都必须以此用户的身份可读和可写。具体而言,这意味着存储在常规用户主目录中的项目输入和输出目录需要由 访问,否则(更常见的是)共享文件系统上的另一个位置必须用于 CryoSPARC 项目目录。cryosparcuser
cryosparcuser
多用户环境
如果要安装 CryoSPARC 系统供许多用户使用(例如在实验室内),则有两个选项:
使用 UNIX 组
创建一个新的常规用户 (),并以此用户身份安装并运行 CryoSPARC。创建一个 CryoSPARC 项目目录(在共享文件系统上),用于存储项目数据,并为每个实验室成员创建子目录。如果需要额外的安全性,请使用 UNIX 组特权使每个子目录只能由相应实验室成员的 UNIX 帐户读取/写入。在 CryoSPARC 命令行界面中,为每个实验室成员创建一个 CryoSPARC 用户帐户,并让每个实验室成员在其各自的项目目录中创建其项目。此方法依赖于 CryoSPARC Web 应用程序来确保安全性,以限制每个用户只能查看自己的项目。这并不能保证安全性,足够努力的恶意用户将能够修改系统,以便能够看到其他用户的项目和结果。cryosparcuser
cryosparcuser
使用单独的 CryoSPARC 实例
如果必须保证每个用户的项目完全隔离和安全性,则每个用户必须在自己的主目录中独立安装 CryoSPARC。项目也可以使用 UNIX 权限在用户主目录中保持私有。多个单用户 CryoSPARC 主进程可以在同一主节点上运行,并且它们都可以将作业提交到同一个集群调度程序系统。此方法依赖于 UNIX 系统来确保安全性,并且管理起来更繁琐,但提供了更强的访问限制。在这种情况下,每个用户都需要有自己的 CryoSPARC 许可证 ID。
示例系统
我们目前不与任何特定的硬件供应商合作销售预装了 CryoSPARC 的机器。
硬件系统示例
以下是满足或超过上述最低要求的示例工作站的详细信息,包括我们内部用于开发和测试的工作站。
关键配件 |
技术规格 |
CPU |
32核 (频率2.8GHz+越高越好), 例如Xeon W9-3475X或AMD锐龙TR 7970X以上 |
内存 |
256GB DDR5 4800MHz |
存储 |
4TB PCIe SSD (缓存盘); 200TB RAID6存储通过10Gbps链接(raw movies) |
GPU |
4x NVIDIA Quadro GV100/Tesla V100/NVIDIA RTX 8000 |
2024年冷冻电镜图像重构与高速图形工作站硬件配置推荐
https://www.xasun.com/news/html/?2792.html