{"id":4147,"date":"2011-05-27T20:34:18","date_gmt":"2011-05-27T20:34:18","guid":{"rendered":"http:\/\/hgpu.org\/?p=4147"},"modified":"2011-05-27T20:34:18","modified_gmt":"2011-05-27T20:34:18","slug":"parallelization-of-binary-and-real-coded-genetic-algorithms-on-gpu-using-cuda","status":"publish","type":"post","link":"https:\/\/hgpu.org\/?p=4147","title":{"rendered":"Parallelization of binary and real-coded genetic algorithms on GPU using CUDA"},"content":{"rendered":"<p>Genetic Algorithms(GAs) are suitable for parallel computing since population members fitness maybe evaluated in parallel. Most past parallel GA studies have exploited this aspect, besides resorting to different algorithms, such as island, single-population master-slave, fine-grained and hybrid models. A GA involves a number of other operations which, if parallelized, may lead to better parallel GA implementation than those currently existing. In this paper, we parallelize binary and real-coded genetic algorithms using CUDA API&#8217;s with C. Although, objective and constraint violations evaluations are embarassingly parallel, other algorithmic and code optimizations have been proposed and tested. The bottlenecks in a parallel GA implementation are identified and modified suitably. The results are compared with the sequential algorithm on accuracy and clock time for varying problems by studying the effect of a number of parameters, namely: (i) population sizes, (ii) number of threads, (iii) problem sizes, and (iv) problems of differing complexities. Significant speed-ups have been observed over the sequential GA.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Genetic Algorithms(GAs) are suitable for parallel computing since population members fitness maybe evaluated in parallel. Most past parallel GA studies have exploited this aspect, besides resorting to different algorithms, such as island, single-population master-slave, fine-grained and hybrid models. A GA involves a number of other operations which, if parallelized, may lead to better parallel GA [&hellip;]<\/p>\n","protected":false},"author":351,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[11,89,3],"tags":[1782,14,969,20,199],"class_list":["post-4147","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-nvidia-cuda","category-paper","tag-computer-science","tag-cuda","tag-genetic-programming","tag-nvidia","tag-tesla-c1060"],"views":2051,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/4147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/users\/351"}],"replies":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4147"}],"version-history":[{"count":0,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/4147\/revisions"}],"wp:attachment":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}