SiftD: A CPU & GPU distributed hybrid system for SIFT - Mohammadi, Mahdi Soltan; Rezaeian, Mehdi (2014 7th International Symposium on Telecommunications (IST), 2014)
Using distributed and parallel computing systems have become a de facto for implementing scientific and industrial applications, which require tremendous amount of computing resources. As a widely used approach, general purpose distributed frameworks, like Hadoop, have provided us with many facilities to develop a distributed computing system for our applications. These General-purpose frameworks are flexible but their flexibility can only take us so far. There are many applications, which not all of their requirements can be met by these frameworks. Image matching using SIFT algorithm can be a good example of these applications. SIFT is a highly complex algorithm for extracting robust features from pictures. This paper outlines most important motivations and challenges for implementing specialized distributed systems. We present siftD, an application for distributing and parallelizing SIFT algorithm. It uses networked computers to distribute the algorithm. Inside each system, multi-core processors and Graphical Processing Units (GPUs) are used to parallelize execution. SiftD's performance and capability for utilizing different computing resources has been evaluated. Results show its performance is generally higher than 93%, which is a fairly appropriate performance. Furthermore, it can utilize broad range of hardware platforms.