{"id":5241,"date":"2021-01-30T14:19:06","date_gmt":"2021-01-30T13:19:06","guid":{"rendered":"https:\/\/www.mi.uni-koeln.de\/NumSim\/?p=5241"},"modified":"2021-02-01T14:30:20","modified_gmt":"2021-02-01T13:30:20","slug":"snapshot-single-node-performance-comparison-of-four-different-magnetohydrodynamics-codes","status":"publish","type":"post","link":"https:\/\/www.mi.uni-koeln.de\/NumSim\/2021\/01\/30\/snapshot-single-node-performance-comparison-of-four-different-magnetohydrodynamics-codes\/","title":{"rendered":"Snapshot: Single-Node Performance Comparison of Four Different Magnetohydrodynamics Codes"},"content":{"rendered":"<p>We compare the runtime performance of four different magnetohydrodynamics codes\u00a0on a single compute node on the in-house high performance cluster ODIN. A\u00a0compute node on ODIN consists of 16 cores. We run the &#8216;3D Alfven wave&#8217; test\u00a0case up to a fixed simulation time and measure the elapsed wall clock time of\u00a0each code minus initialization time and input\/output operations. For each run\u00a0the number of cores is successively increased. This allows us to get insights\u00a0into the scaling behavior (speedup gain wih increasing number of cores) on a\u00a0single compute node. Furthermore we plot the performance index (PID) over the\u00a0number of nodes which is a measure of throughput, i.e. how many millions of\u00a0data points (degrees-of-freedom\/DOF) per second are processed by the each\u00a0code.<\/p>\n<p>The four contestants are:<\/p>\n<ul>\n<li>Flash [1] with Paramesh 4.0 and the Five-wave Bouchut Finite-Volume solver written in Fortran<\/li>\n<li>Fluxo [2] an MHD Discontinuous Galerkin Spectral Element code written in Fortran<\/li>\n<li>Trixi [3] an MHD Discontinuous Galerkin Spectral Element code written in Julia<\/li>\n<li>Nemo an in-house prototype code providing a 2nd order monotonized-central MHD-FV scheme (MCFV) and a\u00a0hybrid MHD Discontinuous Galerkin Spectral Element \/ Finite Volume scheme (DGFV) written in Fortran.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-2.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-5242\" src=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-2-300x166.png\" alt=\"\" width=\"300\" height=\"166\" srcset=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-2-300x166.png 300w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-2-768x426.png 768w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-2-500x277.png 500w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-2.png 942w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-5243\" src=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-1-300x166.png\" alt=\"\" width=\"300\" height=\"166\" srcset=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-1-300x166.png 300w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-1-768x426.png 768w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-1-1024x567.png 1024w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-1-500x277.png 500w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2021\/02\/image-1.png 1884w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Trixi uses a thread-based parallelization approach while Flash, Fluxo and Nemo<br \/>\nuse the standard MPI method. Furthermore, Nemo also provides OpenMP-based<br \/>\nparallelization.<\/p>\n<p>[1] https:\/\/flash.uchicago.edu\/site\/<br \/>\n[2] https:\/\/github.com\/project-fluxo\/fluxo<br \/>\n[3] https:\/\/github.com\/trixi-framework\/Trixi.jl<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We compare the runtime performance of four different magnetohydrodynamics codes\u00a0on a single compute node on the in-house high performance cluster ODIN. A\u00a0compute node on ODIN consists of 16 cores. We run the &#8216;3D Alfven wave&#8217; test\u00a0case up to a fixed &hellip; <a href=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/2021\/01\/30\/snapshot-single-node-performance-comparison-of-four-different-magnetohydrodynamics-codes\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/posts\/5241"}],"collection":[{"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/comments?post=5241"}],"version-history":[{"count":3,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/posts\/5241\/revisions"}],"predecessor-version":[{"id":5246,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/posts\/5241\/revisions\/5246"}],"wp:attachment":[{"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/media?parent=5241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/categories?post=5241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/tags?post=5241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}