我有一台拥有 112 个 CPU(Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz)和 4 个 GPU(GeForce RTX 1080)的机器,我想用它来运行我所做研究的已发布的计算协议。估计一下运行需要多长时间会很有用。
协议告诉我这一点:
“运行该协议的时间是在一个具有 640 个核心(每个 CPU 节点 64 个核心)和 50 个 GPU 的集群上估算的,每个作业使用 60 个核心”
我谷歌了一下我的 CPU,发现它有 28 个核心。那么我有 112*28(3,126)个核心吗?我不知道“CPU 节点”是什么意思,它是否等同于“CPU”?
当我用 GPU 搜索时,它说我有 2560 个“Cuda 核心”。我猜他们的 GPU 和我的一样好,甚至更好,但他们只使用 60 个核心似乎很奇怪?这是在训练深度学习模型的背景下。
答案1
估算大型问题的运行时间的一般过程是使用不同大小的小型数据集进行几次试验。然后,您可以推断出整个数据集的运行时间的粗略估计。您可能会遇到内存限制、缓存限制、进程锁定等问题,这些问题会影响整个运行,但不会影响小型情况。
软件使用的算法也会影响可扩展性。线程是否与共享内存和频繁内存或数据锁紧密耦合?另一种可能是它使用大量本质上独立的线程。前者扩展性不好,而后者则很好。如果进程受 I/O 限制,投入更多计算资源也无济于事。
查看其他系统可能会有所帮助,但并非决定性的。除了处理器的数量、类型和速度外,您还需要内存的数量和速度、磁盘类型(旋转、固态硬盘、NVMe)、网络互连以及可能在系统上运行的其他进程。
基本上,只有熟悉特定程序和数据集的人才能回答您的问题。