  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.
