当人们想要购买针对最佳 (pdf)latex 性能进行优化的新硬件时,应该考虑哪些事项?
例如,有人可能会认为 CPU 的内核越多越好。但由于 latex 是线性的,因此没有太多空间进行并行化。因此内核的数量似乎并不那么重要。
新系统尤其是 CPU 的哪些功能对于最佳乳胶性能至关重要?
哪些特性对于一般用途的良好性能通常很重要,但对于乳胶性能却并不重要?
编辑:
显然,你可以简单地选择你能买到的最昂贵的高端系统。但是通常人们都有预算,问题在于系统的哪些部分和详细功能对于乳胶编译性能至关重要,哪些部分和详细功能不那么重要,因为乳胶不能使用它……
答案1
最终,只有一件事真正起到了作用:单线程 CPU 能力!
我做了很多 LaTeX 编译工作,尤其是大型 Beamer 演示文稿(包含 500 多张幻灯片、大量叠加层和大量 TikZ 内容的讲义)。运行三次 pdflatex 的编译时间通常只需几分钟。
我在我们实验室的许多不同机器上对此设置进行了实验,从我的双核笔记本电脑、具有 2 到 4 GB RAM 的普通四核 PC 到具有 32 GB RAM 和超高速 SCSI 磁盘的 48 核 AMD 服务器。
我没有记录这些测试的实际数字。但是,结果大致是:编译时间与 CPU 时钟几乎呈线性关系。运行速度最快的 Core i7;内存和磁盘只起着次要作用(假设您提供两者的适度质量和大小)。
结果并不令人惊讶:
- 按照今天的标准,编译 LaTeX 文档并不会占用太多内存。在能够以中等性能执行 Word 的机器上,使用 LaTeX 时永远不会遇到内存障碍。
- 确实,LaTeX 会执行大量 IO。然而,即使硬盘速度较慢,IO 加载也不会超过几毫秒。对于第二次和第三次编译器运行,大多数文件都在缓冲区缓存中。
现有的 TeX/LaTeX 编译器均未使用线程级并行性,因此,多 CPU 核心将带来巨大好处。此外,典型的三个 pdflatex 运行无法并行化,必须按顺序执行。在一些然而,在某些情况下,可能可以使用进程级并行,以便多个核心可以加快编译过程:
- 对于我的 Beamer 讲义,我保留了“演示文稿”、“讲义”和“笔记”版本。编辑完成后,我通常会同时编译这三个版本以加快速度。
- 使用 TikZ 外部库,可以在后台进程中并行编译 TikZ 图形并将其作为 PDF 包含。如果您的文档包含许多复杂的 TikZ 或 pgfplots 图像,多个核心可以加速此过程。(感谢 Alexander 的提示!)
我没有做过任何关于缓存大小的测试,但由于内存负载较低,我们不能指望超大缓存会带来显著的好处。
总结:对于“LaTeX 机器”它是处理器尤其是单核吞吐量应该寻找。
然而,后者并不总是容易弄清楚,因为现在基本上所有的处理器都是多核的,并且通过多核吞吐量进行基准测试和宣传。一个很好的起点是PassMark CPU 基准测试网站,该网站为所有当前 IA32e/AMD64 CPU 提供有关“单线程性能”的频繁更新报告。