Programming Model to Develop Supercomputer Combinatorial Solvers

Novel architectures for massively parallel machines offer better scalability and the prospect of achieving linear speedup for sizable problems in many domains. The development of suitable programming models and accompanying software tools for these architectures remains one of the biggest challenges towards exploiting their full potential. We present a multi-layer software abstraction model to develop combinatorial solvers on massively-parallel machines with regular topologies. The model enables different challenges in the design and optimization of combinatorial solvers to be tackled independently (separation of concerns) while permitting problem-specific tuning and cross-layer optimization. In specific, the model decouples the issues of inter-node communication, node-level scheduling, problem mapping, mesh-level load balancing and expressing problem logic. We present an implementation of the model and use it to profile a Boolean satisfiability solver on simulated massively-parallel machines with different scales and topologies.

[1]  John P. Hayes,et al.  Architecture of a Hypercube Supercomputer , 1986, ICPP.

[2]  John P. Hayes,et al.  A Microprocessor-based Hypercube Supercomputer , 1986, IEEE Micro.

[3]  Marc-Oliver Gewaltig,et al.  NEST (NEural Simulation Tool) , 2007, Scholarpedia.

[4]  Maria Paola Bonacina,et al.  PSATO: a Distributed Propositional Prover and its Application to Quasigroup Problems , 1996, J. Symb. Comput..

[5]  Peter Van Roy,et al.  Programming paradigms for dummies: what every programmer should know , 2009 .

[6]  Wilson Ifill,et al.  PyCSP-Communicating Sequential Processes for Python , 2007 .

[7]  Luc Bougé The Data Parallel Programming Model: A Semantic Perspective , 1996, The Data Parallel Programming Model.

[8]  Yannis Cotronis Reusable message passing components , 2000, Proceedings 8th Euromicro Workshop on Parallel and Distributed Processing.

[9]  Kemal Efe,et al.  Embedding Mesh of Trees in the Hypercube , 1991, J. Parallel Distributed Comput..

[10]  James D. Mooney,et al.  Portability and reusability: common issues and differences , 1995, CSC '95.

[11]  Yannis Cotronis,et al.  Message-Passing Program Development by Ensemble , 1997, PVM/MPI.

[12]  Bradford L. Chamberlain,et al.  The case for high-level parallel programming in ZPL , 1998 .

[13]  Lakhdar Sais,et al.  ManySAT: a Parallel SAT Solver , 2009, J. Satisf. Boolean Model. Comput..

[14]  Anthony J. G. Hey,et al.  Practical Parallelism using Transputer Arrays , 1987, PARLE.

[15]  Ilse C. F. Ipsen,et al.  How to Embed Trees in Hypercubes. , 1985 .

[16]  N. Falconer Structured Programming , 1973, Nature.

[17]  John D. Carter,et al.  A Formal CSP Framework for Message-Passing HPC Programming , 2006, 2006 Canadian Conference on Electrical and Computer Engineering.

[18]  Narain H. Gehani,et al.  Rendezvous Facilities: Concurrent C and the Ada Language , 1988, IEEE Trans. Software Eng..

[19]  Christopher Rodrigues,et al.  Supporting high-level, high-performance parallel programming with library-driven optimization , 2014 .

[20]  Roger Dettmer Occam and the transputer , 1985 .

[21]  Steve B. Furber,et al.  The SpiNNaker Project , 2014, Proceedings of the IEEE.

[22]  Keita Teranishi,et al.  Evolving the Message Passing Programming Model via a Fault-Tolerant, Object-oriented Transport Layer , 2015, FTXS@HPDC.

[23]  Jim D. Garside,et al.  SpiNNaker—Programming Model , 2015, IEEE Transactions on Computers.

[24]  Willem P. de Roever,et al.  A Proof System for Communicating Sequential Processes , 1980, ACM Trans. Program. Lang. Syst..

[25]  Christina Freytag,et al.  Using Mpi Portable Parallel Programming With The Message Passing Interface , 2016 .

[26]  Ewald Speckenmeyer,et al.  A fast parallel SAT-solver — efficient workload balancing , 2005, Annals of Mathematics and Artificial Intelligence.

[27]  Vasco M. Manquinho,et al.  An overview of parallel SAT solving , 2012, Constraints.

[28]  Wei Ge,et al.  The Sunway TaihuLight supercomputer: system and applications , 2016, Science China Information Sciences.

[29]  A J G Hey General Purpose Parallel Computers , 1991 .

[30]  Wolfgang Küchlin,et al.  PaSAT - Parallel SAT-Checking with Lemma Exchange: Implementation and Applications , 2001, Electron. Notes Discret. Math..

[31]  Jie Cheng,et al.  Programming Massively Parallel Processors. A Hands-on Approach , 2010, Scalable Comput. Pract. Exp..

[32]  L. Dagum,et al.  OpenMP: an industry standard API for shared-memory programming , 1998 .

[33]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[34]  Wahid Chrabakh,et al.  GrADSAT: A Parallel SAT Solver for the Grid , 2003 .

[35]  M. Y. Chan,et al.  Embedding of d-dimensional grids into optimal hypercubes , 1989, SPAA '89.

[36]  Andrew D. Brown,et al.  Reliable computation with unreliable computers , 2015, IET Comput. Digit. Tech..

[37]  James Demmel,et al.  the Parallel Computing Landscape , 2022 .

[38]  William J. Dally,et al.  GPUs and the Future of Parallel Computing , 2011, IEEE Micro.

[39]  Colin Whitby-Strevens The transputer , 1985, ISCA 1985.

[40]  A. W. Roscoe,et al.  A Timed Model for Communicating Sequential Processes , 1986, Theor. Comput. Sci..

[41]  Cameron Patterson,et al.  Scalable event-driven native parallel processing: the SpiNNaker neuromimetic system , 2010, Conf. Computing Frontiers.

[42]  G. C. Fox,et al.  What have we learnt from using real parallel machines to solve real problems? , 1989, C3P.

[43]  J. P. Marques,et al.  GRASP : A Search Algorithm for Propositional Satisfiability , 1999 .

[44]  Trevor Mudge,et al.  Hypercube supercomputers , 1989, Proc. IEEE.