{"@context":"https:\/\/schema.org\/","@type":"ScholarlyArticle","@id":"#article2383","name":"The Enabling Power of Graph Coloring Algorithms in Automatic Differentiation and Parallel Processing","abstract":"Combinatorial scientific computing (CSC) is founded \r\non the recognition of the enabling power of combinatorial algorithms \r\nin scientific and engineering computation and in high-performance computing.\r\nThe domain of CSC extends beyond traditional scientific computing---the \r\nthree major branches of which are numerical linear algebra, \r\nnumerical solution of differential equations, and \r\nnumerical optimization---to include a range of emerging and \r\nrapidly evolving computational and information science disciplines.\r\nOrthogonally, CSC problems could also emanate from\r\ninfrastructural technologies for supporting high-performance computing.\r\nDespite the apparent disparity in their origins, \r\nCSC problems and scenarios are unified by the following common features:\r\n(A) The overarching goal is often to make computation \r\n efficient---by minimizing overall execution time, memory usage, \r\n and\/or storage space---or to facilitate knowledge discovery or analysis.\r\n(B) Identifying the most accurate combinatorial abstractions that\r\n help achieve this goal is usually a part of the challenge.\r\n(C) The abstractions are often expressed, with advantage, as graph\r\n or hypergraph problems.\r\n(D) The identified combinatorial problems are typically NP-hard to\r\n solve optimally. Thus, fast, often linear-time, approximation (or\r\n heuristic) algorithms are the methods of choice.\r\n(E) The combinatorial algorithms themselves often need to be\r\n parallelized, to avoid their being bottlenecks within a larger\r\n parallel computation.\r\n(F) Implementing the algorithms and deploying them via software\r\n toolkits is critical.\r\n\r\nThis talk attempts to illustrate the aforementioned features of CSC\r\nthrough an example: we consider the enabling role graph coloring \r\nmodels and their algorithms play in efficient computation of \r\nsparse derivative matrices via automatic differentiation (AD). \r\nThe talk focuses on efforts being made on this topic within \r\nthe SciDAC Institute for Combinatorial Scientific Computing \r\nand Petascale Simulations (CSCAPES). \r\nAiming at providing overview than details, we discuss \r\nthe various coloring models used in sparse Jacobian and Hessian computation,\r\nthe serial and parallel algorithms developed in CSCAPES \r\nfor solving the coloring problems, and a\r\ncase study that demonstrate the efficacy of the coloring techniques \r\nin the context of an optimization problem in a Simulated Moving Bed process. \r\nImplementations of our serial algorithms for the coloring \r\nand related problems in derivative computation are assembled \r\nand made publicly available in a package called ColPack. \r\nImplementations of our parallel coloring algorithms are \r\nincorporated into and deployed via the load-balancing toolkit Zoltan. \r\nColPack has been interfaced with ADOL-C, an operator overloading-based \r\nAD tool that has recently acquired improved capabilities for \r\nautomatic detection of sparsity patterns of Jacobians and Hessians\r\n(sparsity pattern detection is the first step in derivative matrix \r\ncomputation via coloring-based compression). \r\nFurther information on ColPack and Zoltan is available \r\nat their respective websites, which can be accessed via \r\nhttp:\/\/www.cscapes.org","keywords":["Graph coloring","sparse derivative computation","automatic differentiation","parallel computing"],"author":{"@type":"Person","name":"Gebremedhin, Assefaw H.","givenName":"Assefaw H.","familyName":"Gebremedhin"},"position":19,"pageStart":1,"pageEnd":3,"dateCreated":"2009-07-24","datePublished":"2009-07-24","isAccessibleForFree":true,"license":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode","copyrightHolder":{"@type":"Person","name":"Gebremedhin, Assefaw H.","givenName":"Assefaw H.","familyName":"Gebremedhin"},"copyrightYear":"2009","accessMode":"textual","accessModeSufficient":"textual","creativeWorkStatus":"Published","inLanguage":"en-US","sameAs":"https:\/\/doi.org\/10.4230\/DagSemProc.09061.19","publisher":"Schloss Dagstuhl \u2013 Leibniz-Zentrum f\u00fcr Informatik","isPartOf":{"@type":"PublicationVolume","@id":"#volume735","volumeNumber":9061,"name":"Dagstuhl Seminar Proceedings, Volume 9061","dateCreated":"2009-07-24","datePublished":"2009-07-24","isAccessibleForFree":true,"publisher":"Schloss Dagstuhl \u2013 Leibniz-Zentrum f\u00fcr Informatik","hasPart":"#article2383","isPartOf":{"@type":"Periodical","@id":"#series119","name":"Dagstuhl Seminar Proceedings","issn":"1862-4405","isAccessibleForFree":true,"publisher":"Schloss Dagstuhl \u2013 Leibniz-Zentrum f\u00fcr Informatik","hasPart":"#volume735"}}}