  The scheduling literature has traditionally focused on a single type of
resource (e.g., computing nodes). However, scientific applications in modern
High-Performance Computing (HPC) systems process large amounts of data, hence
have diverse requirements on different types of resources (e.g., cores, cache,
memory, I/O). All of these resources could potentially be exploited by the
runtime scheduler to improve the application performance. In this paper, we
study multi-resource scheduling to minimize the makespan of computational
workflows comprised of parallel jobs subject to precedence constraints. The
jobs are assumed to be moldable, allowing the scheduler to flexibly select a
variable set of resources before execution. We propose a multi-resource,
list-based scheduling algorithm, and prove that, on a system with $d$ types of
schedulable resources, our algorithm achieves an approximation ratio of
$1.619d+2.545\sqrt{d}+1$ for any $d$, and a ratio of $d+O(\sqrt[3]{d^2})$ for
large $d$. We also present improved results for independent jobs and for jobs
with special precedence constraints (e.g., series-parallel graphs and trees).
Finally, we prove a lower bound of $d$ on the approximation ratio of any list
scheduling scheme with local priority considerations. To the best of our
knowledge, these are the first approximation results for moldable workflows
with multiple resource requirements.
