Abstract
Optimization problems lie at the core of scientific and engineering endeavors. Solutions to these problems are often compute-intensive. To fulfill their compute-resource requirements, graphics processing unit (GPU) technology is considered a great opportunity. To this end, we focus on linear programming (LP) problem solving on GPUs using revised simplex method (RSM). This method has potentially GPU-friendly tasks, when applied to large dense problems. Basis update (BU) is one such task, which is performed in every iteration to update a matrix called basis-inverse matrix. The contribution of this paper is two-fold. Firstly, we experimentally analyzed the performance of existing GPU-based BU techniques. We discovered that the performance of a relatively old technique, in which each GPU thread computed one element of the basis-inverse matrix, could be significantly improved by introducing a vector-copy operation to its implementation with a sophisticated programming framework. Second, we extended the adapted element-wise technique to develop a new BU technique by using three inexpensive vector operations. This allowed us to reduce the number of floating-point operations and conditional processing performed by GPU threads. A comparison of BU techniques implemented in double precision showed that our proposed technique achieved 17.4% and 13.3% average speed-up over its closest competitor for randomly generated and well-known sets of problems, respectively. Furthermore, the new technique successfully updated basis-inverse matrix in relatively large problems, which the competitor was unable to update. These results strongly indicate that our proposed BU technique is not only efficient for dense RSM implementations but is also scalable.
Highlights
Contemporary graphics processing units (GPUs) can perform thousands of giga floating-point operations per second (GFLOPS) for efficient real-time processing of high-definition (HD) graphics [1]
Another consequence of using double-precision arithmetic is that each solver showed an insignificant average percentage error of 2.02 × 10−15 % with respect to results returned by the original (CPU) implementation of revised simplex method (RSM) present in GNU linear programming kit (GLPK)
In this work, we began by conducting a detailed survey of existing Basis update (BU) techniques used in GPU implementations of RSM
Summary
Contemporary graphics processing units (GPUs) can perform thousands of giga floating-point operations per second (GFLOPS) for efficient real-time processing of high-definition (HD) graphics [1] This capability of GPUs has encouraged high-performance-computing community to explore general-purpose computing on GPUs (GPGPU) for solving an ever-growing set of compute-intensive problems [2]. Standard simplex method provides a tableau-based method for solving an LP problem following an iterative approach towards computing the optimal value of the objective function. The algorithm begins by setting up a basis, representing an initial feasible solution It iteratively performs three major tasks to improve the solution: (1) Search for an entering variable, whose inclusion in the basis improves the solution; (2) Find the leaving variable to be excluded from the basis to accommodate the entering variable; (3) Updating the basis to represent the new feasible solution. These tasks are repeatedly performed, until the feasible solution cannot be further improved [7]
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.