Using parallelization techniques to solve the one-to-one shortest path problem

碩士 === 淡江大學 === 資訊管理學系碩士班 === 101 === In recent years as more mobile devices allow user to get online more easily, there is increasing demand for more powerful cloud services to serve more requests with shorter response time. In the past, the server often uses CPU to handle the requests. As the CPU...

Full description

Bibliographic Details
Main Authors: Yung-Hsin Ho, 何永欣
Other Authors: Shih-Chieh Wei
Format: Others
Language:zh-TW
Published: 2013
Online Access:http://ndltd.ncl.edu.tw/handle/81474601782401380327
id ndltd-TW-101TKU05396008
record_format oai_dc
spelling ndltd-TW-101TKU053960082016-05-22T04:32:55Z http://ndltd.ncl.edu.tw/handle/81474601782401380327 Using parallelization techniques to solve the one-to-one shortest path problem 運用平行化技術於一對一最短路徑問題之研究 Yung-Hsin Ho 何永欣 碩士 淡江大學 資訊管理學系碩士班 101 In recent years as more mobile devices allow user to get online more easily, there is increasing demand for more powerful cloud services to serve more requests with shorter response time. In the past, the server often uses CPU to handle the requests. As the CPU equips with more cores and threads, use of the parallel computation can provide more speedup. Currently, OpenMP is the most common parallelization technique for utilizing CPU threads. In the meantime, general purpose GPUs evolving from the graphics display card also see rapid development as a mature parallel compute technology. Currently, CUDA is the most popular compute architecture to exploit the powerful and cheap GPU cores. This work will utilize these parallelization techniques to accelerate the computation of one-to-one shortest path in a clustered map. To make full use of the CPU and GPU hardware resources, the request is divided into the inter-cluster task and the intra-cluster task based on the clusters of the start and end locations. As the inter-cluster task takes long compute time, GPU using CUDA is introduced to accelerate the computation. For intra-cluster tasks, each task is simply served by a CPU thread running the Dijkstra algorithm with a goal to maximize the number of tasks serviced per second. Our experiment is performed on a real Taiwan roadmap with 275,195 nodes and 381,172 edges where clusters are formed by the METIS clustering method. Given a platform with double CPUs of Intel Xeon E5620 and double GPUs of NVidia Tesla C2050, we measure speedup relative to a single thread counterpart. For only inter-cluster tasks, we obtain a speedup of 7.7x or 0.08ms when computing only the shortest distance. When the shortest path is also computed, we obtain a speedup of 5.2x or 0.13ms. For the whole spectrum of tasks including inter-cluster and intra-cluster tasks, we can service 25,756 tasks in one second when computing only the shortest distance. When the shortest path is also computed, we can service 24,128 tasks in one second. For comparison with maps without clusters, several parallel Dijkstra algorithms are tested too. When the shortest path is also computed, our parallel algorithm can obtain a speedup of 5.2x on real Taiwan roadmap and a speedup of 8x on a map of random graph. Shih-Chieh Wei 魏世杰 2013 學位論文 ; thesis 57 zh-TW
collection NDLTD
language zh-TW
format Others
sources NDLTD
description 碩士 === 淡江大學 === 資訊管理學系碩士班 === 101 === In recent years as more mobile devices allow user to get online more easily, there is increasing demand for more powerful cloud services to serve more requests with shorter response time. In the past, the server often uses CPU to handle the requests. As the CPU equips with more cores and threads, use of the parallel computation can provide more speedup. Currently, OpenMP is the most common parallelization technique for utilizing CPU threads. In the meantime, general purpose GPUs evolving from the graphics display card also see rapid development as a mature parallel compute technology. Currently, CUDA is the most popular compute architecture to exploit the powerful and cheap GPU cores. This work will utilize these parallelization techniques to accelerate the computation of one-to-one shortest path in a clustered map. To make full use of the CPU and GPU hardware resources, the request is divided into the inter-cluster task and the intra-cluster task based on the clusters of the start and end locations. As the inter-cluster task takes long compute time, GPU using CUDA is introduced to accelerate the computation. For intra-cluster tasks, each task is simply served by a CPU thread running the Dijkstra algorithm with a goal to maximize the number of tasks serviced per second. Our experiment is performed on a real Taiwan roadmap with 275,195 nodes and 381,172 edges where clusters are formed by the METIS clustering method. Given a platform with double CPUs of Intel Xeon E5620 and double GPUs of NVidia Tesla C2050, we measure speedup relative to a single thread counterpart. For only inter-cluster tasks, we obtain a speedup of 7.7x or 0.08ms when computing only the shortest distance. When the shortest path is also computed, we obtain a speedup of 5.2x or 0.13ms. For the whole spectrum of tasks including inter-cluster and intra-cluster tasks, we can service 25,756 tasks in one second when computing only the shortest distance. When the shortest path is also computed, we can service 24,128 tasks in one second. For comparison with maps without clusters, several parallel Dijkstra algorithms are tested too. When the shortest path is also computed, our parallel algorithm can obtain a speedup of 5.2x on real Taiwan roadmap and a speedup of 8x on a map of random graph.
author2 Shih-Chieh Wei
author_facet Shih-Chieh Wei
Yung-Hsin Ho
何永欣
author Yung-Hsin Ho
何永欣
spellingShingle Yung-Hsin Ho
何永欣
Using parallelization techniques to solve the one-to-one shortest path problem
author_sort Yung-Hsin Ho
title Using parallelization techniques to solve the one-to-one shortest path problem
title_short Using parallelization techniques to solve the one-to-one shortest path problem
title_full Using parallelization techniques to solve the one-to-one shortest path problem
title_fullStr Using parallelization techniques to solve the one-to-one shortest path problem
title_full_unstemmed Using parallelization techniques to solve the one-to-one shortest path problem
title_sort using parallelization techniques to solve the one-to-one shortest path problem
publishDate 2013
url http://ndltd.ncl.edu.tw/handle/81474601782401380327
work_keys_str_mv AT yunghsinho usingparallelizationtechniquestosolvetheonetooneshortestpathproblem
AT héyǒngxīn usingparallelizationtechniquestosolvetheonetooneshortestpathproblem
AT yunghsinho yùnyòngpíngxínghuàjìshùyúyīduìyīzuìduǎnlùjìngwèntízhīyánjiū
AT héyǒngxīn yùnyòngpíngxínghuàjìshùyúyīduìyīzuìduǎnlùjìngwèntízhīyánjiū
_version_ 1718274537498345472