{"id":3152,"date":"2023-07-06T16:19:33","date_gmt":"2023-07-06T16:19:33","guid":{"rendered":"https:\/\/nag.com\/?post_type=case-studies&#038;p=3152"},"modified":"2024-03-07T15:08:02","modified_gmt":"2024-03-07T15:08:02","slug":"load-balancing-issues-uncovered-in-a-particle-tracking-application","status":"publish","type":"case-studies","link":"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/","title":{"rendered":"Load balancing issues uncovered in a particle tracking application"},"content":{"rendered":"\n<div class=\"gbc-title-banner ta ta-lg ta-xl\" style='background-color: #082d48ff; color: #ffffffff; border-radius: 0px; '>\n    <div class=\"container\" style='border-radius: 0px; '>\n        <div class=\"row justify-content--center\" style='color: #ffffffff;'>\n            <div class=\"col-12\"  >\n                <div class=\"wrap pv-4 \" style=\"0px\">\n                                <div class=\"col-12 col-md-12 col-lg-10 col-xl-8  banner-content\"  >\n    \n                                             <h1>Load balancing issues uncovered in a particle tracking application<\/h1>\n                    \n                    <div class=\"mt-1 mb-1 content\"><p>Case Study<\/p>\n<\/div>\n\n                    \n                                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<!-- Spacer -->\n<div class=\"pt-4 pt-lg-4 pt-xl-4\" ><\/div>\n\n<div class=\"container content-area-default \">\n    <div class=\"row justify-content--center\">\n        <div class=\"col-12 col-md-12 col-lg-10 col-xl-8\">\n            <h3 class=\"field field--name-field-paragraph-title field--type-string field--label-hidden field--item\">Project Background<\/h3>\n<div class=\"field field--name-field-paragraph-text field--type-text-long field--label-hidden field--item\">\n<p>The Centre for Environment, Fisheries and Aquaculture Science (Cefas) is a world leader in marine science and technology, providing innovative solutions for the aquatic environment, biodiversity and food security. The centre uses behaviour and transport models to address a range of marine management questions.<\/p>\n<p>They use an off-line particle tracking model that requires velocity fields from a hydrodynamic model, which is known as the Individual Behaviour Model (IBM) GITM (General Individuals Transport Model) code. It includes physical particle advection and diffusion, and biological development and behaviour. The code is implemented in Fortran 90. It was originally sequential then parallelized with OpenMP.<\/p>\n<h3 class=\"tex2jax_process\">Objective<\/h3>\n<p>The objective of this work was to investigate how to improve the parallel performance of the GITM application using OpenMP and to quantify the effort for it to run on distributed memory HPC systems using MPI.<\/p>\n<h3>Method<\/h3>\n<p><em>Audit<\/em>\u00a0\u2013 The GITM audit took two months.\u00a0A set of performance metrics were used to assess the quality of performance and identify any limiting issues, these metrics relate to computational scaling and load balance. The audit identified that the application could further benefit from using multiple threads. The underlying cause was found to be related to load balance caused by inefficient cache usage and inefficient array alignments for vectorization. As the code was parallelized using OpenMP, the I\/O using NetCDF was done sequentially.<\/p>\n<div><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3153 size-full\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/cefas_pop_loadbalance.png\" alt=\"\" width=\"762\" height=\"285\" \/><\/div>\n<p class=\"para-sm\">Example of load balance test report<\/p>\n<p><em>Report<\/em>\u00a0\u2013 Recommendations were made to improve the vectorization and computational performance of the application. Specifically, a change of compiler would assist in vectorization of masked Fortran 90 array operations. Improved array alignment would also enable more efficient vectorization and a reduction in the use of floating point division would enable more efficient computation. A long term recommendation was made for the use of MPI so that the I\/O can be performed via the parallel NetCDF Library, rather than sequential access methods, to make it more scalable.<\/p>\n<p><em>Code improvements<\/em><em>\u00a0<\/em>\u2013<em>\u00a0<\/em>The code improvements are being carried out by the existing development with advice available from <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG when requested.<\/p>\n<p><em>On-going<\/em>\u00a0\u2013 Work is currently progressing to improve I\/O and vectorize further parts of the code.<\/p>\n<p>Long term recommendation of the use of MPI is being considered so that the parallel NetCDF Library could be used for parallel I\/O.<\/p>\n<p>Note: This work was carried out by <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG staff working under the remit of the\u00a0<a href=\"https:\/\/pop-coe.eu\/\">Performance Optimisation and Productivity<\/a>\u00a0Centre of Excellence in Computing Applications (POP)<\/p>\n<\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<div class=\"gbc-title-banner tac tac-lg tac-xl\" style='border-radius: 0px; '>\n    <div class=\"container\" style='border-radius: 0px; '>\n        <div class=\"row justify-content--center\" >\n            <div class=\"col-12\"  >\n                <div class=\"wrap pv-4 \" style=\"0pxbackground-color: \">\n                                <div class=\"col-12 col-md-12 col-lg-10 col-xl-8  banner-content\"  >\n    \n                    \n                    <div class=\"mt-1 mb-1 content\"><\/div>\n\n                    \n                    <a href='https:\/\/nag.com\/hpc-services\/' style='background-color: #63c0fdff; border-radius: 30px; font-weight: 600; ' class='btn mr-1  ' >HPC Services <i class='fas fa-angle-right'><\/i><\/a>                <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The Centre for Environment, Fisheries and Aquaculture Science (Cefas) use an off-line particle tracking model that requires velocity fields from a hydrodynamic model.<\/p>\n","protected":false},"author":3,"featured_media":3157,"parent":0,"menu_order":0,"template":"","meta":{"content-type":"","footnotes":""},"post-tag":[43],"class_list":["post-3152","case-studies","type-case-studies","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Load balancing issues uncovered in a particle tracking application - nAG<\/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:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Load balancing issues uncovered in a particle tracking application - nAG\" \/>\n<meta property=\"og:description\" content=\"The Centre for Environment, Fisheries and Aquaculture Science (Cefas) use an off-line particle tracking model that requires velocity fields from a hydrodynamic model.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/\" \/>\n<meta property=\"og:site_name\" content=\"nAG\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-07T15:08:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/iStock-1409226868.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1125\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@NAGTalk\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/\",\"url\":\"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/\",\"name\":\"Load balancing issues uncovered in a particle tracking application - nAG\",\"isPartOf\":{\"@id\":\"https:\/\/nag.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/iStock-1409226868.jpg\",\"datePublished\":\"2023-07-06T16:19:33+00:00\",\"dateModified\":\"2024-03-07T15:08:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#primaryimage\",\"url\":\"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/iStock-1409226868.jpg\",\"contentUrl\":\"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/iStock-1409226868.jpg\",\"width\":2000,\"height\":1125},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nag.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Case Studies\",\"item\":\"https:\/\/nag.com\/case-studies\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Load balancing issues uncovered in a particle tracking application\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nag.com\/#website\",\"url\":\"https:\/\/nag.com\/\",\"name\":\"NAG\",\"description\":\"Robust, trusted numerical software and computational expertise.\",\"publisher\":{\"@id\":\"https:\/\/nag.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nag.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nag.com\/#organization\",\"name\":\"Numerical Algorithms Group\",\"alternateName\":\"NAG\",\"url\":\"https:\/\/nag.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nag.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png\",\"contentUrl\":\"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png\",\"width\":1244,\"height\":397,\"caption\":\"Numerical Algorithms Group\"},\"image\":{\"@id\":\"https:\/\/nag.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/NAGTalk\",\"https:\/\/www.linkedin.com\/company\/nag\/\",\"https:\/\/www.youtube.com\/user\/NumericalAlgorithms\",\"https:\/\/github.com\/numericalalgorithmsgroup\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Load balancing issues uncovered in a particle tracking application - nAG","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:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/","og_locale":"en_US","og_type":"article","og_title":"Load balancing issues uncovered in a particle tracking application - nAG","og_description":"The Centre for Environment, Fisheries and Aquaculture Science (Cefas) use an off-line particle tracking model that requires velocity fields from a hydrodynamic model.","og_url":"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/","og_site_name":"nAG","article_modified_time":"2024-03-07T15:08:02+00:00","og_image":[{"width":2000,"height":1125,"url":"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/iStock-1409226868.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@NAGTalk","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/","url":"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/","name":"Load balancing issues uncovered in a particle tracking application - nAG","isPartOf":{"@id":"https:\/\/nag.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#primaryimage"},"image":{"@id":"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#primaryimage"},"thumbnailUrl":"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/iStock-1409226868.jpg","datePublished":"2023-07-06T16:19:33+00:00","dateModified":"2024-03-07T15:08:02+00:00","breadcrumb":{"@id":"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#primaryimage","url":"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/iStock-1409226868.jpg","contentUrl":"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/iStock-1409226868.jpg","width":2000,"height":1125},{"@type":"BreadcrumbList","@id":"https:\/\/nag.com\/case-studies\/load-balancing-issues-uncovered-in-a-particle-tracking-application\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nag.com\/"},{"@type":"ListItem","position":2,"name":"Case Studies","item":"https:\/\/nag.com\/case-studies\/"},{"@type":"ListItem","position":3,"name":"Load balancing issues uncovered in a particle tracking application"}]},{"@type":"WebSite","@id":"https:\/\/nag.com\/#website","url":"https:\/\/nag.com\/","name":"NAG","description":"Robust, trusted numerical software and computational expertise.","publisher":{"@id":"https:\/\/nag.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nag.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/nag.com\/#organization","name":"Numerical Algorithms Group","alternateName":"NAG","url":"https:\/\/nag.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nag.com\/#\/schema\/logo\/image\/","url":"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png","contentUrl":"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png","width":1244,"height":397,"caption":"Numerical Algorithms Group"},"image":{"@id":"https:\/\/nag.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/NAGTalk","https:\/\/www.linkedin.com\/company\/nag\/","https:\/\/www.youtube.com\/user\/NumericalAlgorithms","https:\/\/github.com\/numericalalgorithmsgroup"]}]}},"_links":{"self":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/case-studies\/3152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/case-studies"}],"about":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/types\/case-studies"}],"author":[{"embeddable":true,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/users\/3"}],"version-history":[{"count":3,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/case-studies\/3152\/revisions"}],"predecessor-version":[{"id":5874,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/case-studies\/3152\/revisions\/5874"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/media\/3157"}],"wp:attachment":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/media?parent=3152"}],"wp:term":[{"taxonomy":"post-tag","embeddable":true,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/post-tag?post=3152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}