{"id":13832,"date":"2014-12-15T14:07:00","date_gmt":"2014-12-15T13:07:00","guid":{"rendered":"https:\/\/rafen.app\/uncategorized\/parallel-algorithms\/"},"modified":"2023-04-30T21:17:45","modified_gmt":"2023-04-30T20:17:45","slug":"parallel-algorithms","status":"publish","type":"post","link":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/","title":{"rendered":"Parallel algorithms"},"content":{"rendered":"<h5>Objectives and outcomes<\/h5>\n<p>Developing theoretical foundations and practical skills required for understanding and development of<br \/>\nparallel computer programs. Students will learn the key concepts and issues related to the<br \/>\nimplementation of parallel algorithms and will be acquainted with the relevant characteristics of modern<br \/>\nparallel computing systems. They will be capable of designing and using parallel algorithms for problem-solving.<\/p>\n<h5>Lectures<\/h5>\n<p>Parallel computing systems and Flynn&#8217;s taxonomy. Limits of parallelisation, Amdahl\u2019s and Gustafson&#8217;s<br \/>\nlaws. Shared, local and distributed memories. Performance of parallel algorithms. Analysing a problem in<br \/>\norder to identify possible routes to parallelisation. Short introduction to Python. Introduction to basic<br \/>\nconcepts of parallel programming based on examples in Python. Parallelisation through multithreading.<br \/>\nParallelisation through multiprocessing. Synchronisation, barriers and semaphores. Manycore and GP-<br \/>\nGPU software development. CUDA and pyCUDA frameworks. Vectorisation through Intel AVX instruction<br \/>\nset. Dataflow programming.<\/p>\n<h5>Practical classes<\/h5>\n<p>Estimating the speedup and efficiency which can be obtained through parallelisation. Practical<br \/>\nintroduction to Python and software development using Jupyter\/Google Colab environments.<br \/>\nParallelisation through multithreading and the limitations of the Python interpreter (Global Interpreter<br \/>\nLock). Parallelisation through multiprocessing. Synchronisation and inter-process communication.<br \/>\nExamples of parallel algorithms from the domains of scientific computing, business applications and<br \/>\ngraph processing. CUDA programming framework. Examples of programs written using CUDA, and<br \/>\nexecution through pyCUDA, Jyputer Lab and Google Cloud.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Objectives and outcomes Developing theoretical foundations and practical skills required for understanding and development of parallel computer programs. Students will learn the key concepts and issues related to the implementation of parallel algorithms and will &#8230; <a title=\"Parallel algorithms\" class=\"read-more\" href=\"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/\" aria-label=\"More on Parallel algorithms\">Read more<\/a><\/p>\n <a href=\"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/\" class=\"more-link\" title=\"Read more\">Read more<\/a>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[199],"tags":[],"class_list":["post-13832","post","type-post","status-publish","format-standard","hentry","category-subjects"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Parallel algorithms - School of Computing<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Parallel algorithms - School of Computing\" \/>\n<meta property=\"og:description\" content=\"Objectives and outcomes Developing theoretical foundations and practical skills required for understanding and development of parallel computer programs. Students will learn the key concepts and issues related to the implementation of parallel algorithms and will ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/\" \/>\n<meta property=\"og:site_name\" content=\"School of Computing\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-15T13:07:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-30T20:17:45+00:00\" \/>\n<meta name=\"author\" content=\"RAF Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"RAF Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/parallel-algorithms\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/parallel-algorithms\\\/\"},\"author\":{\"name\":\"RAF Admin\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/person\\\/4e2166c781f2802c67414a1578c66a43\"},\"headline\":\"Parallel algorithms\",\"datePublished\":\"2014-12-15T13:07:00+00:00\",\"dateModified\":\"2023-04-30T20:17:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/parallel-algorithms\\\/\"},\"wordCount\":219,\"publisher\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#organization\"},\"articleSection\":[\"Subjects\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/parallel-algorithms\\\/\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/parallel-algorithms\\\/\",\"name\":\"Parallel algorithms - School of Computing\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#website\"},\"datePublished\":\"2014-12-15T13:07:00+00:00\",\"dateModified\":\"2023-04-30T20:17:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/parallel-algorithms\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/parallel-algorithms\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/parallel-algorithms\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Subjects\",\"item\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Parallel algorithms\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/\",\"name\":\"School of Computing\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#organization\",\"name\":\"School of Computing\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/cropped-raf-engleski.png\",\"contentUrl\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/cropped-raf-engleski.png\",\"width\":400,\"height\":66,\"caption\":\"School of Computing\"},\"image\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/person\\\/4e2166c781f2802c67414a1578c66a43\",\"name\":\"RAF Admin\",\"sameAs\":[\"https:\\\/\\\/raf.app\"],\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/author\\\/rafadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Parallel algorithms - School of Computing","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/","og_locale":"en_US","og_type":"article","og_title":"Parallel algorithms - School of Computing","og_description":"Objectives and outcomes Developing theoretical foundations and practical skills required for understanding and development of parallel computer programs. Students will learn the key concepts and issues related to the implementation of parallel algorithms and will ... Read more","og_url":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/","og_site_name":"School of Computing","article_published_time":"2014-12-15T13:07:00+00:00","article_modified_time":"2023-04-30T20:17:45+00:00","author":"RAF Admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"RAF Admin","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/#article","isPartOf":{"@id":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/"},"author":{"name":"RAF Admin","@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/person\/4e2166c781f2802c67414a1578c66a43"},"headline":"Parallel algorithms","datePublished":"2014-12-15T13:07:00+00:00","dateModified":"2023-04-30T20:17:45+00:00","mainEntityOfPage":{"@id":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/"},"wordCount":219,"publisher":{"@id":"https:\/\/raf.edu.rs\/en\/#organization"},"articleSection":["Subjects"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/","url":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/","name":"Parallel algorithms - School of Computing","isPartOf":{"@id":"https:\/\/raf.edu.rs\/en\/#website"},"datePublished":"2014-12-15T13:07:00+00:00","dateModified":"2023-04-30T20:17:45+00:00","breadcrumb":{"@id":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/raf.edu.rs\/en\/subjects\/parallel-algorithms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/raf.edu.rs\/en\/"},{"@type":"ListItem","position":2,"name":"Subjects","item":"https:\/\/raf.edu.rs\/en\/subjects\/"},{"@type":"ListItem","position":3,"name":"Parallel algorithms"}]},{"@type":"WebSite","@id":"https:\/\/raf.edu.rs\/en\/#website","url":"https:\/\/raf.edu.rs\/en\/","name":"School of Computing","description":"","publisher":{"@id":"https:\/\/raf.edu.rs\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/raf.edu.rs\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/raf.edu.rs\/en\/#organization","name":"School of Computing","url":"https:\/\/raf.edu.rs\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/logo\/image\/","url":"https:\/\/raf.edu.rs\/en\/wp-content\/uploads\/2023\/02\/cropped-raf-engleski.png","contentUrl":"https:\/\/raf.edu.rs\/en\/wp-content\/uploads\/2023\/02\/cropped-raf-engleski.png","width":400,"height":66,"caption":"School of Computing"},"image":{"@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/person\/4e2166c781f2802c67414a1578c66a43","name":"RAF Admin","sameAs":["https:\/\/raf.app"],"url":"https:\/\/raf.edu.rs\/en\/author\/rafadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts\/13832","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/comments?post=13832"}],"version-history":[{"count":3,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts\/13832\/revisions"}],"predecessor-version":[{"id":16973,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts\/13832\/revisions\/16973"}],"wp:attachment":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/media?parent=13832"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/categories?post=13832"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/tags?post=13832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}