55
Views
4
CrossRef citations to date
0
Altmetric
Original Articles

Curve-Fitting on Graphics Processors Using Particle Swarm Optimization

Pages 213-224 | Received 05 Sep 2011, Accepted 12 Aug 2012, Published online: 28 Nov 2013
 

Abstract

Curve fitting is a fundamental task in many research fields. In this paper we present results demonstrating the fitting of 2D images using CUDA (compute unified device architecture) on NVIDIA graphics processors via particle swarm optimization (PSO). Particle swarm optimization is particularly well-suited to implementation on graphics processors using CUDA as each CUDA thread can be made to model a single particle in a swarm with the swarm itself defined by thread blocks.

The motivation for this work was the reconstruction of interferometric photoactivated localization microscopy (iPALM) data sets. The reconstruction requires the fitting of 2D curves to potentially millions of detected photoactivation peaks. Additional motivation was to search for a solution that replaces a cluster with a single desktop machine using multiple CUDA graphics cards.

PSO curve fitting running on the GPU enabled a substantial performance increase over the CPU alone and scaled well with multiple CUDA cards. The performance gains increase with the number of images to be fit and the number of cards used. Two NVIDIA Tesla C1060 graphics cards achieved performance comparable to 30 nodes of the cluster.

Reprints and Corporate Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

To request a reprint or corporate permissions for this article, please click on the relevant link below:

Academic Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

Obtain permissions instantly via Rightslink by clicking on the button below:

If you are unable to obtain permissions via Rightslink, please complete and submit this Permissions form. For more information, please visit our Permissions help page.