Performance Analysis of Benchmarks for GPU-based Linear Programming Problem Solvers

The single instruction multiple threads (SIMT) architecture of modern graphics processing units (GPUs) shows great potential for efficiently solving compute-intensive linear programming (LP) problems. For benchmarking these GPU-based solutions, speedup is used to measure their relative performance gains with respect to CPU-based implementations. However, a methodological flaw has been observed in benchmarking these GPU-based LP problem solvers, namely, the magnitude of their speedup varies with the choice of CPU-based benchmark. In this paper, we analyze the performance of CPU-based LP problem solvers used to benchmark their GPU-based counterparts. More specifically, we consider benchmarks of two established GPU-based solutions for revised simplex method. The first solution is based on general-purpose computing on GPUs (GPGPU) programming model, and uses a custom-built CPU-based solution as benchmark. The second solution is an OpenGL-based solver, and uses the LP utility in GNU linear programming kit (GLPK) as benchmark. Further, we performed experiments to compare the efficiency of these CPU-based benchmarks with an LP tool present in a commercially available CPU-based software package called CPLEX. Our study reveals that the use of nonstandard benchmarks makes it unfair to quantitatively compare the claims made about speedups achieved by various GPU-based solvers. In order to facilitate decision making process for potential users of GPU-based solutions, we recommend that standard sequential benchmarks be used during any future attempts at developing GPU-based linear optimization tools.

[1]  I. Maros Computational Techniques of the Simplex Method , 2002 .

[2]  Justin David Durfee,et al.  Comparison of open-source linear programming solvers. , 2013 .

[3]  Daniele G. Spampinato,et al.  Linear Optimization with CUDA , 2009 .

[4]  Anne C. Elster,et al.  Linear optimization on modern GPUs , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

[5]  George B. Dantzig,et al.  Linear programming and extensions , 1965 .

[6]  Didier El Baz,et al.  Efficient Implementation of the Simplex Method on a CPU-GPU System , 2011, 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum.

[7]  Peter Martini,et al.  An efficient GPU implementation of the revised simplex method , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW).

[8]  Nikolaos Ploskas,et al.  Efficient GPU-based implementations of simplex type algorithms , 2015, Appl. Math. Comput..

[9]  Qi Huangfu,et al.  Parallelizing the dual revised simplex method , 2015, Mathematical Programming Computation.

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

[11]  Nikolaos Ploskas,et al.  Exterior Point Simplex Algorithm , 2017 .