Skip to content

Commit

Permalink
build based on 3ebfc28
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Oct 11, 2024
1 parent 682185f commit 755d9c7
Show file tree
Hide file tree
Showing 17 changed files with 26 additions and 24 deletions.
2 changes: 1 addition & 1 deletion previews/PR56/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.11.0","generation_timestamp":"2024-10-11T10:38:42","documenter_version":"1.7.0"}}
{"documenter":{"julia_version":"1.11.0","generation_timestamp":"2024-10-11T19:35:13","documenter_version":"1.7.0"}}
Binary file added previews/PR56/assets/compute_cluster.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions previews/PR56/concepts/architectures/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions previews/PR56/concepts/bc/index.html

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions previews/PR56/concepts/distributed/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Distributed · Chmy.jl</title><meta name="title" content="Distributed · Chmy.jl"/><meta property="og:title" content="Distributed · Chmy.jl"/><meta property="twitter:title" content="Distributed · Chmy.jl"/><meta name="description" content="Documentation for Chmy.jl."/><meta property="og:description" content="Documentation for Chmy.jl."/><meta property="twitter:description" content="Documentation for Chmy.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.png" alt="Chmy.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit"><a href="../../">Chmy.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><a class="tocitem" href="../../getting_started/">Getting Started with Chmy.jl</a></li><li><span class="tocitem">Concepts</span><ul><li><a class="tocitem" href="../architectures/">Architectures</a></li><li><a class="tocitem" href="../grids/">Grids</a></li><li><a class="tocitem" href="../fields/">Fields</a></li><li><a class="tocitem" href="../bc/">Boundary Conditions</a></li><li><a class="tocitem" href="../grid_operators/">Grid Operators</a></li><li><a class="tocitem" href="../kernels/">Kernels</a></li><li class="is-active"><a class="tocitem" href>Distributed</a><ul class="internal"><li><a class="tocitem" href="#HPC-Cluster-and-Distributed-Memory"><span>HPC Cluster &amp; Distributed Memory</span></a></li><li><a class="tocitem" href="#Hybrid-Parallelism"><span>Hybrid Parallelism</span></a></li></ul></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../../examples/overview/">Examples Overview</a></li></ul></li><li><span class="tocitem">Library</span><ul><li><a class="tocitem" href="../../lib/modules/">Modules</a></li></ul></li><li><span class="tocitem">Developer documentation</span><ul><li><a class="tocitem" href="../../developer_documentation/running_tests/">Running Tests</a></li><li><a class="tocitem" href="../../developer_documentation/workers/">Workers</a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Concepts</a></li><li class="is-active"><a href>Distributed</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Distributed</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/PTsolvers/Chmy.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/PTsolvers/Chmy.jl/blob/main/docs/src/concepts/distributed.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Distributed"><a class="docs-heading-anchor" href="#Distributed">Distributed</a><a id="Distributed-1"></a><a class="docs-heading-anchor-permalink" href="#Distributed" title="Permalink"></a></h1><p><strong>Task-based parallelism</strong> in <a href="https://github.com/PTsolvers/Chmy.jl">Chmy.jl</a> is featured by the usage of <a href="https://docs.julialang.org/en/v1/base/multi-threading/#Base.Threads.@spawn"><code>Threads.@spawn</code></a>, with an additional layer of a <a href="../../developer_documentation/workers/">Worker</a> construct for efficiently managing the lifespan of tasks. Note that the task-based parallelism provides a high-level abstraction of program execution <strong>not only</strong> for <strong>shared-memory architecture</strong> on a single machine, but it can be also extended to <strong>hybrid parallelism</strong>, consisting of both shared and distributed-memory parallelism. The <code>Distributed</code> module in Chmy.jl allows users to leverage the hybrid parallelism through the power of abstraction.</p><p>We will start with some basic background knowledge for understanding the architecture of modern HPC clusters, the underlying memory model and the programming paradgm complied with it. We then introduce how Chmy.jl provides a high-level API for users to abstract the low-level details away and then a simple example showing how the <code>Distributed</code> module should be used.</p><h2 id="HPC-Cluster-and-Distributed-Memory"><a class="docs-heading-anchor" href="#HPC-Cluster-and-Distributed-Memory">HPC Cluster &amp; Distributed Memory</a><a id="HPC-Cluster-and-Distributed-Memory-1"></a><a class="docs-heading-anchor-permalink" href="#HPC-Cluster-and-Distributed-Memory" title="Permalink"></a></h2><p>An <strong>high-performance computing (HPC)</strong> cluster consists of a <strong>network</strong> of independent computers combined into a system through specialized hardware. We call each computer a <em>node</em>, and each node manages its own private memory. Such system with interconnected nodes, without having access to memory of any other node, features the <strong>distributed memory model</strong>. The underlying fast interconnect architecture (<em>InfiniBand</em>) that physically connects the nodes in the <strong>network</strong> can transfer the data from one node to another in an extremely efficient manner through a communication protocol called remote direct memory access (RDMA).</p><img src="../assets/compute_cluster.jpg" width="50%"/><p>By using the <em>InfiniBand</em>, processes across different nodes can communicate with each other through the sending of messages in a high-throughput, low-latency fashion. The syntax and semantics of how <strong>message passing</strong> should proceed through such network is defined by a standard called the <strong>Message-Passing Interface (MPI)</strong>, and there are different libraries that implement the standard, resulting in a wide range of choice (MPICH, Open MPI, MVAPICH etc.) for users. </p><div class="admonition is-info"><header class="admonition-header">Message-Passing Interface (MPI) is a General Specification</header><div class="admonition-body"><p>In general, implementations based on <strong>MPI standard</strong> can be used for a great variety of computers, not just on HPC clusters, as long as these computers are connected by a communication network.</p></div></div><h2 id="Hybrid-Parallelism"><a class="docs-heading-anchor" href="#Hybrid-Parallelism">Hybrid Parallelism</a><a id="Hybrid-Parallelism-1"></a><a class="docs-heading-anchor-permalink" href="#Hybrid-Parallelism" title="Permalink"></a></h2></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../kernels/">« Kernels</a><a class="docs-footer-nextpage" href="../../examples/overview/">Examples Overview »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Friday 11 October 2024 19:35">Friday 11 October 2024</span>. Using Julia version 1.11.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit 755d9c7

Please sign in to comment.