Abstract
We come up with a graphics processing unit (GPU) parallel Bernstein algorithm (BA) aimed at global optimization of multi-variate real polynomials (Garloff in Interval Comput 2:164–168, 1993). We first propose parallel algorithms for (a) computing the multi-index set associated with the Bernstein coefficients (BCs), (b) computing the initial set of BCs using the Matrix method (Ray and Nataraj in Reliab Comput 17(1):40–71, 2012), (c) finding the minimum BC from a given set of BCs, and (d) finding the BCs of the child patches from the parent patch. We then incorporate the above components into the proposed parallel Bernstein algorithm. All the parallel algorithms are programmed for GPU accelerating devices through compute unified device architecture. We compared performance of serial and GPU parallel BA using a test suite of 8 multivariate examples. For the test examples, the proposed parallel algorithm is found 30 times faster as compared to serial one, and needs 96% less time.
Similar content being viewed by others
References
Berchtold J, Voiculescu I, Bowyer A (1998) Multivariate Bernstein form polynomials. Technical report 31/98, School of Mechanical Engineering
Dhabe P (2017) A new approach to global optimization based on Bernstein polynomials and GPU computing. PhD thesis, Indian Institute of Technology, Bombay, India
Dhabe PS, Nataraj PSV (2011) Parallel computation of binomial coefficients using CUDA. In: Proceedings of 2nd international conference on meta computing ICEOMEC2011, Allied Publishers, India, pp 118–124
Dhabe PS, Nataraj PSV (2017a) A parallel Bernstein algorithm for global optimization based on the implicit Bernstein form. Int J Syst Assur Eng Manag 8(Suppl 2):1654. https://doi.org/10.1007/s13198-017-0639-z
Dhabe PS, Nataraj PSV (2017b) The Bernstein algorithm using the modified implicit Bernstein form and its GPU parallelization using CUDA. Int J Syst Assur Eng Manag 8:826. https://doi.org/10.1007/s13198-017-0673-x
Farber R (2011) CUDA application design and development. Morgan Kaufmann, Boston
Gamsworld: http://wwwgamsworld.org/global/globallib.htm
Garloff J (1993) The Bernstein algorithm. Interval Comput 2:164–168
Garloff J (2003) The Bernstein expansion and its applications. J Am Rom Acad 25:27
Grama A, Gupta A, Karypis G, Kumar V (2003) Introduction to parallel computing, 2nd edn. Addison-Wesley, Boston
Harris M Optimizing parallel reduction in CUDA. http://developer.download.nvidia.com/assets/cuda/_les/16.pdf
Himmelblau DM, Yetes RV (1972) Applied nonlinear programming. McGraw-Hill, New York
IBM: http://publib.boulder.ibm.com/iseries/v5r1/ic2924/tstudio/techref/mi/CAI.html
Lorentz GG (1988) Bernstein polynomials, 2nd edn. Chelsea publishing Company, New York
Mei Kirk DB, Hwu W (2010) Programming massively parallel processors: a hands on approach. Morgan Kaufmann, Burlington
Moore RE (1979) Methods and applications of interval analysis. SIAM, Philadelphia
Nataraj PSV, Arounassalame M (2007) A new subdivision algorithm for the Bernstein polynomial approach to global optimization. Int J Autom Comput 4(4):342–352
Nataraj PSV, Arounassalame M (2009) An algorithm for constrained global optimization of multivariate polynomials using the Bernstein form and John optimality conditions. OPSEARCH 46(2):133–152
Nataraj PSV, Arounassalame M (2011) Constrained global optimization of multivariate polynomials using Bernstein branch and prune algorithm. J Glob Optim 49(2):185–212
Nataraj PSV, Kotecha K (2002) An algorithm for global optimization using the Taylor-Bernstein form as an inclusion function. J Glob Optim 24(1):417–436
Nickolls J, Dally WJ (2010) The GPU computing era. IEEE Micro 30(2):56–69
Nickolls J, Buck I, Garland M, Skadron K (2008) Scalable parallel programming with CUDA. ACM Queue 6(2):40–53
Nvidia: CUDA C best programming guide (2015a). http://docs.nvidia.com/cuda/pdf/CUDA_C_Best_Practices_Guide.pdf
Nvidia: CUDA C programming guide (2015b). https://docs.nvidia.com/cuda/cuda-c-programming-guide/
NVIDIA: NVIDIAs Next Generation CUDA Compute Architecture:Kepler GK110/210. http://international.download.nvidia.com/pdf/kepler/NVIDIA-Kepler-GK110-GK210-Architecture-Whitepaper.pdf
Owens JD, Luebke D, Govindaraju N, Harris M, Krger J, Lefohn AE, Purcell TJ (2005) A survey of general-purpose computation on graphics hardware. In: Eurographics 2005, state of the art report, pp 21–51
Owens JD, Houston M, Luebke D, Green S, Stone JE, Phillip JC (2008) GPU computing. Proc IEEE 96(5):879–899
Patil BV, Nataraj PSV, Bhartiya S (2011) Global optimization of mixed-integer nonlinear (polynomial) programming problems: the Bernstein polynomial approach. J Comput 2011:1–19
Persson D (2007) Testing complex data-structures on the general purpose graphics processing units. Master’s thesis, Blekinge Institute of Technology, Sweden
Ray S (2007) A new approach to range computation of polynomials using the Bernstein form. PhD thesis, Systems and Control Engineering, Indian Institute of Technology, Bombay, India
Ray S, Nataraj PSV (2010) A new strategy for selection of subdivision point in the Bernstein approach to polynomial optimization. Reliab Comput 14(4):117–137
Ray S, Nataraj PSV (2012) A matrix method for efficient computation of Bernstein coefficients. Reliab Comput 17(1):40–71
Sahil S, Queen NM (2004) A hybrid algorithm for detecting global and local minima when optimizing functions with many minima. Eur J Oper Res 155:51–67
Sedgewick R (1977) Permutation generation methods. ACM Comput Surv 9(2):137–164
Verschelde J (2001) The PHC pack, the database of polynomial systems. Technial report, University of Illinois, Mathematics Department, Chicago, USA
Vrahatis MN, Sotiropoulos DG, Triantafyllou EC (1997) Global optimization for imprecise problems. In: Boomze IM, Csendes T, Horst R, Pardalos PM (eds) Developments in global optimization. Kluwer, Dordrecht, pp 37–54
Zettler M, Garloff J (1998) Robustness analysis of polynomials with polynomial parameter dependency using Bernstein expansion. IEEE Trans Autom Control 43(3):425–431
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendix 1
Appendix 1
Following is the list of the polynomials p used in this work, along with their starting domain x. Each test problem has given a short name (bold face), full name and the dimensionality, as like in (Dhabe and Nataraj 2017a, 2017).
- 1.
Heart-8: A 8-dimensional heart-dipole test problem, l = 8 (Verschelde 2001)
$$ p(x) = - \,x_{1} x_{6}^{3} + 3x_{1} x_{6} x_{7}^{2} - x_{3} x_{7}^{2} + 3x_{3} x_{7} x_{6}^{2} - x_{2} x_{5}^{3} + 3x_{2} x_{5} x_{8}^{2} - x_{4} x_{8}^{3} + 3x_{4} x_{8} x_{5}^{2} - 0.9563453 $$x1 = [− 0.1,0.4], x2 = [0.4,1.0], x3 = [− 0.7,0.4], x4 = [− 0.7,0.4], x5 = [0.1,0.2], x6 = [0.1,0.2], x7 = [− 0.3,1.1], x8 = [− 1.1, − 0.3]
- 2.
Rosen-6: A 6-dimensional general function, l = 6 (Sahil and Queen 2004)
$$ p(x) = \int\limits_{i = 1}^{(l - 1)} {} \left( {100(x_{i}^{2} - x_{i + 1} )^{2} + (1 - x_{i} )^{2} } \right) $$x1 = x2 = ··· = x6 = [− 2.0,2.0]
- 3.
Kear-6: A 6-variable extended function of Kearfott l = 6 (Vrahatis et al. 1997)
$$ p(x) = \left[ {\int\limits_{i = 1}^{(l - 1)} {} (x_{i}^{2} - x_{i + 1} )^{2} } \right] + (x_{l}^{2} - x_{1} )^{2} $$x1 = x2 =···= x6 = [− 2.0,2.0]
- 4.
Reim-5: A 5-variable Reimer’s system, l = 5 (Verschelde 2001)
$$ p(x) = - \,1 + 2x_{1}^{6} - 2x_{2}^{6} + 2x_{3}^{6} - 2x_{4}^{6} + 2x_{5}^{6} $$x1 = x2 = x3 = x4 = x5 = [− 1.0,1.0]
- 5.
Quad-10: A 10-variable function with power 2, l = 10 (Vrahatis et al. 1997)
$$ p(x) = x_{1}^{2} + x_{2}^{2} + \cdots + x_{10}^{2} - r,\quad {\text{for}}\quad r = - \,2 $$x1 = x2 =···= x10 = [− 1.0, 1.0]
- 6.
Reim-6: A 6-variable Reimer’s system, l = 6 (Verschelde 2001)
$$ p(x) = - \,1 + 2x_{1}^{7} - 2x_{2}^{7} + 2x_{3}^{7} - 2x_{4}^{7} + 2x_{5}^{7} - 2x_{6}^{7} $$x1 = x2 =···= x6 = [− 5.0, 5.0]
- 7.
Holzmann-8: A Holzmann function with 8-variables, l = 8 (Himmelblau and Yetes 1972)
$$ p(x) = \int\limits_{i = 1}^{l} {i*x_{i}^{4} } $$x1 = x2 =···= x8 = [− 10.0, 10.0]
- 8.
PowerSum-6: A power sum function with 6-variables l = 6 (Sahil and Queen 2004)
$$ p(x) = \int\limits_{i = 1}^{L} {x_{i}^{g} } ,\quad {\text{where}},\,\,g = 8 $$x1 = x2 =···= x6 = [− 5.0,5.0]
Rights and permissions
About this article
Cite this article
Dhabe, P., Nataraj, P.S.V. A GPU parallel Bernstein algorithm for polynomial global optimization. Int J Syst Assur Eng Manag 11, 21–44 (2020). https://doi.org/10.1007/s13198-019-00922-6
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-019-00922-6