{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,29]],"date-time":"2026-09-29T17:28:22Z","timestamp":1790702902687,"version":"4.1.0"},"reference-count":14,"publisher":"Wiley","license":[{"start":{"date-parts":[[2019,10,13]],"date-time":"2019-10-13T00:00:00Z","timestamp":1570924800000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["International Journal of Reconfigurable Computing"],"published-print":{"date-parts":[[2019,10,13]]},"abstract":"<jats:p>Solving diagonally dominant tridiagonal linear systems is a common problem in scientific high-performance computing (HPC). Furthermore, it is becoming more commonplace for HPC platforms to utilise a heterogeneous combination of computing devices. Whilst it is desirable to design faster implementations of parallel linear system solvers, power consumption concerns are increasing in priority. This work presents the <jats:italic>oclspkt<\/jats:italic> routine. The <jats:italic>oclspkt<\/jats:italic> routine is a heterogeneous OpenCL implementation of the truncated SPIKE algorithm that can use FPGAs, GPUs, and CPUs to concurrently accelerate the solving of diagonally dominant tridiagonal linear systems. The routine is designed to solve tridiagonal systems of any size and can dynamically allocate optimised workloads to each accelerator in a heterogeneous environment depending on the accelerator\u2019s compute performance. The truncated SPIKE FPGA solver is developed first for optimising OpenCL device kernel performance, global memory bandwidth, and interleaved host to device memory transactions. The FPGA OpenCL kernel code is then refactored and optimised to best exploit the underlying architecture of the CPU and GPU. An optimised TDMA OpenCL kernel is also developed to act as a serial baseline performance comparison for the parallel truncated SPIKE kernel since no FPGA tridiagonal solver capable of solving large tridiagonal systems was available at the time of development. The individual GPU, CPU, and FPGA solvers of the <jats:italic>oclspkt<\/jats:italic> routine are 110%, 150%, and 170% faster, respectively, than comparable device-optimised third-party solvers and applicable baselines. Assessing heterogeneous combinations of compute devices, the GPU\u2009+\u2009FPGA combination is found to have the best compute performance and the FPGA-only configuration is found to have the best overall estimated energy efficiency.<\/jats:p>","DOI":"10.1155\/2019\/3679839","type":"journal-article","created":{"date-parts":[[2019,10,13]],"date-time":"2019-10-13T19:32:24Z","timestamp":1570995144000},"page":"1-13","source":"Crossref","is-referenced-by-count":7,"title":["Implementing and Evaluating an Heterogeneous, Scalable, Tridiagonal Linear System Solver with OpenCL to Target FPGAs, GPUs, and CPUs"],"prefix":"10.1155","volume":"2019","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-1543-4499","authenticated-orcid":true,"given":"Hamish J.","family":"Macintosh","sequence":"first","affiliation":[{"name":"School of Electrical Engineering and Computer Science, Queensland University of Technology, Brisbane, Queensland 4001, Australia"},{"name":"eResearch Office, Division of Research and Innovation, Queensland University of Technology, Brisbane, Queensland 4001, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1507-9682","authenticated-orcid":true,"given":"Jasmine E.","family":"Banks","sequence":"additional","affiliation":[{"name":"School of Electrical Engineering and Computer Science, Queensland University of Technology, Brisbane, Queensland 4001, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Neil A.","family":"Kelson","sequence":"additional","affiliation":[{"name":"eResearch Office, Division of Research and Innovation, Queensland University of Technology, Brisbane, Queensland 4001, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"311","reference":[{"key":"1","doi-asserted-by":"publisher","DOI":"10.1145\/322047.322054"},{"key":"2","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2005.07.005"},{"key":"3","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2005.07.005"},{"key":"8","year":"2014"},{"key":"10","doi-asserted-by":"publisher","DOI":"10.1109\/access.2018.2823299"},{"key":"12","doi-asserted-by":"publisher","DOI":"10.1016\/j.procs.2014.05.009"},{"key":"13","year":"2014"},{"key":"14","doi-asserted-by":"publisher","DOI":"10.21914\/anziamj.v56i0.9371"},{"key":"15","first-page":"15","volume-title":"Chapter 2\u2014introduction to OpenCL","year":"2013"},{"key":"16","year":"1992"},{"key":"17","first-page":"1078","volume-title":"A comparison of parallel solvers for diagonally dominant and general narrow-banded linear systems II","year":"1999"},{"key":"19","doi-asserted-by":"publisher","DOI":"10.1007\/bf01385791"},{"key":"20","doi-asserted-by":"publisher","DOI":"10.1137\/080719571"},{"key":"25","year":"1995"}],"container-title":["International Journal of Reconfigurable Computing"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/downloads.hindawi.com\/journals\/ijrc\/2019\/3679839.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/downloads.hindawi.com\/journals\/ijrc\/2019\/3679839.xml","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/downloads.hindawi.com\/journals\/ijrc\/2019\/3679839.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,10,13]],"date-time":"2019-10-13T19:32:26Z","timestamp":1570995146000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.hindawi.com\/journals\/ijrc\/2019\/3679839\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,10,13]]},"references-count":14,"alternative-id":["3679839","3679839"],"URL":"https:\/\/doi.org\/10.1155\/2019\/3679839","relation":{},"ISSN":["1687-7195","1687-7209"],"issn-type":[{"value":"1687-7195","type":"print"},{"value":"1687-7209","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,10,13]]}}}