[论文解读] TMAC: A Toolbox of Modern Async-Parallel, Coordinate, Splitting, and Stochastic Methods
TMAC 是一个用于大规模优化的开源 C++11 工具箱,实现了现代异步并行、坐标、分裂和随机算法。通过将问题分解为简单子问题,并同时支持同步和异步并行,该工具箱可在多核系统上实现高效、可扩展的优化,已在非负矩阵分解任务中实现高达 14.5 倍的加速。
TMAC is a toolbox written in C++11 that implements algorithms based on a set of modern methods for large-scale optimization. It covers a variety of optimization problems, which can be both smooth and nonsmooth, convex and nonconvex, as well as constrained and unconstrained. The algorithms implemented in TMAC, such as the coordinate up- date method and operator splitting method, are scalable as they decompose a problem into simple subproblems. These algorithms can run in a multi-threaded fashion, either synchronously or asynchronously, to take advantages of all the cores available. TMAC architecture mimics how a scientist writes down an optimization algorithm. Therefore, it is easy for one to obtain a new algorithm by making simple modifications such as adding a new operator and adding a new splitting, while maintaining the multicore parallelism and other features. The package is available at https://github.com/uclaopt/TMAC.
研究动机与目标
- 提供一个灵活、可扩展且高效的工具箱,用于实现现代大规模优化算法。
- 通过异步和并行执行,实现在多核架构上的高性能、可扩展优化。
- 支持凸与非凸、光滑与非光滑、有约束与无约束的优化问题。
- 通过模仿优化方法的科学记法,促进新算法的快速原型设计。
- 为未来计算范式(包括集群计算和随机算法)提供扩展支持。
提出的方法
- TMAC 采用分层架构(可执行文件、驱动程序、算法方案、算子、线性代数)分离算法组件,支持模块化开发。
- 实现算子分裂方法(如 ADMM、Douglas-Rachford 和原始-对偶分裂)以将复杂问题分解为更简单的子问题。
- 支持多种选择规则(随机、循环、贪心)的坐标更新方法,并可并行执行,支持同步或异步模式。
- 利用 C++11 线程库实现跨 Linux、Mac 和 Windows 的可移植、高效多线程。
- 通过 BLAS 或 ScaLAPACK 加速数值线性代数运算,且可将并行性扩展至这些操作。
- 通过扩展现有层次(如添加新算子或分裂方案)即可创建新算法,无需重写核心逻辑。
实验结果
研究问题
- RQ1如何设计一个通用优化工具箱,以同时支持串行和高度并行的异步执行?
- RQ2哪些架构原则能够实现对现代优化方法(如坐标更新和算子分裂)的高效且可扩展的实现?
- RQ3如何在保持高性能的同时,使工具箱在多核系统上保持代码的可读性和模块化?
- RQ4在非凸和大规模问题中,异步并行能带来多大的性能提升?
- RQ5如何将未来扩展(如随机算法、基于 MPI 的集群计算和图形用户界面)集成到模块化、可扩展的框架中?
主要发现
- 在 16 个线程上,非负矩阵分解任务中 TMAC 实现了 14.51 倍的加速,表明其具有出色的可扩展性。
- 投资组合优化任务在 16 个线程上实现 15.12 倍加速,证实了其高并行效率。
- 在 k=100 的非负矩阵分解任务中,TMAC 在 16 个线程上实现 14.47 倍加速,表明其在不同问题规模下均表现稳健。
- 代码库具有模块化和可扩展性:通过修改单一层次(如添加新算子或分裂方案)即可实现新算法。
- TMAC 支持凸与非凸问题,包括经验风险最小化、支持向量机(SVM)和非负矩阵分解(NMF),并在真实世界问题实例中展示了优异性能。
- 未来扩展(如随机方法、基于 MPI 的集群计算和图形用户界面)已规划并处于积极开发中。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。