All Projects → kaityo256 → Sevendayshpc

kaityo256 / Sevendayshpc

Licence: cc-by-4.0
一週間でなれる!スパコンプログラマ

Programming Languages

cpp
1120 projects

Labels

Projects that are alternatives of or similar to Sevendayshpc

fuzzball
Ongoing development of the Fuzzball MUCK server software and associated functionality.
Stars: ✭ 38 (-89.02%)
Mutual labels:  mpi
gpubootcamp
This repository consists for gpu bootcamp material for HPC and AI
Stars: ✭ 227 (-34.39%)
Mutual labels:  mpi
pyccel
Python extension language using accelerators
Stars: ✭ 189 (-45.38%)
Mutual labels:  mpi
PartitionedArrays.jl
Vectors and sparse matrices partitioned into pieces for parallel distributed-memory computations.
Stars: ✭ 45 (-86.99%)
Mutual labels:  mpi
pypar
Efficient and scalable parallelism using the message passing interface (MPI) to handle big data and highly computational problems.
Stars: ✭ 66 (-80.92%)
Mutual labels:  mpi
neworder
A dynamic microsimulation framework for python
Stars: ✭ 15 (-95.66%)
Mutual labels:  mpi
yask
YASK--Yet Another Stencil Kit: a domain-specific language and framework to create high-performance stencil code for implementing finite-difference methods and similar applications.
Stars: ✭ 81 (-76.59%)
Mutual labels:  mpi
Mpich
Official MPICH Repository
Stars: ✭ 275 (-20.52%)
Mutual labels:  mpi
PencilFFTs.jl
Fast Fourier transforms of MPI-distributed Julia arrays
Stars: ✭ 48 (-86.13%)
Mutual labels:  mpi
frovedis
Framework of vectorized and distributed data analytics
Stars: ✭ 59 (-82.95%)
Mutual labels:  mpi
EFDCPlus
www.eemodelingsystem.com
Stars: ✭ 9 (-97.4%)
Mutual labels:  mpi
tbslas
A parallel, fast solver for the scalar advection-diffusion and the incompressible Navier-Stokes equations based on semi-Lagrangian/Volume-Integral method.
Stars: ✭ 21 (-93.93%)
Mutual labels:  mpi
mpifx
Modern Fortran wrappers around MPI routines
Stars: ✭ 25 (-92.77%)
Mutual labels:  mpi
dbcsr
DBCSR: Distributed Block Compressed Sparse Row matrix library
Stars: ✭ 65 (-81.21%)
Mutual labels:  mpi
Torsten
library of C++ functions that support applications of Stan in Pharmacometrics
Stars: ✭ 38 (-89.02%)
Mutual labels:  mpi
PencilArrays.jl
Distributed Julia arrays using the MPI protocol
Stars: ✭ 40 (-88.44%)
Mutual labels:  mpi
cram
Tool to run many small MPI jobs inside of one large MPI job.
Stars: ✭ 23 (-93.35%)
Mutual labels:  mpi
Kernels
This is a set of simple programs that can be used to explore the features of a parallel platform.
Stars: ✭ 287 (-17.05%)
Mutual labels:  mpi
mpi-parallelization
Examples for MPI Spawning and Splitting, and the differences between two implementations
Stars: ✭ 16 (-95.38%)
Mutual labels:  mpi
hpdbscan
Highly parallel DBSCAN (HPDBSCAN)
Stars: ✭ 19 (-94.51%)
Mutual labels:  mpi

一週間でなれる!スパコンプログラマ

リポジトリ(kaityo256/sevendayshpc)

HTML版

一括PDF版

はじめに

  • なぜスパコンを使うのか

Day 1 : 環境構築

とりえあず手元のPCでMPIが使える環境を整え、簡単なMPIプログラミングを試してみる。

  • MPIとは
  • 余談:MPIは難しいか
  • MPIのインストール
  • はじめてのMPI
  • ランク
  • 標準出力について
  • GDBによるMPIプログラムのデバッグ

Day 2 : スパコンの使い方

スパコンを使うときに知っておきたいこと。ジョブの投げ方など。

  • はじめに
  • スパコンとは
  • 余談:BlueGene/Lのメモリエラー
  • スパコンのアカウントの取得方法
  • ジョブの実行の仕組み
  • ジョブスクリプトの書き方
  • フェアシェア
  • バックフィル
  • チェーンジョブ
  • ステージング
  • 並列ファイルシステム

Day 3 : 自明並列

自明並列、通称「馬鹿パラ」のやり方について。

  • 自明並列、またの名を馬鹿パラとは
  • 自明並列の例1: 円周率
  • 自明並列テンプレート
  • 自明並列の例2: 多数のファイル処理
  • 自明並列の例3: 統計処理
  • 並列化効率
  • サンプル並列とパラメタ並列の違い

Day 4 : 領域分割による非自明並列

非自明並列の例として、一次元熱伝導方程式方程式を領域分割してみる。

  • 非自明並列
  • 一次元拡散方程式 (シリアル版)
  • 一次元拡散方程式 (並列版)
  • 余談: EagerプロトコルとRendezvousプロトコル

Day 5 : 二次元反応拡散方程式

本格的なMPIプログラムの例として、二次元反応拡散方程式を領域分割してみる。

  • シリアル版
  • 並列化ステップ1: 通信の準備など
  • 並列化ステップ2: データの保存
  • 並列化ステップ2: のりしろの通信
  • 並列化ステップ3: 並列コードの実装
  • 余談:MPIの面倒くささ

Day 6 : ハイブリッド並列

プロセス並列とスレッド並列の併用によるハイブリッド並列化について。 特にスレッド並列で気をつけたいことなど。

  • ハイブリッド並列とは
  • 仮想メモリとTLB
  • 余談:TLBミスについて
  • NUMA
  • OpenMPの例
  • 性能評価
  • 余談:ロックの話
  • ハイブリッド並列の実例

Day 7 : SIMD化

SIMD化について。

  • はじめに
  • SIMDとは
  • SIMDレジスタを触ってみる
  • 余談:アセンブリ言語?アセンブラ言語?
  • 簡単なSIMD化の例
  • 余談:x86における浮動小数点演算の扱い
  • もう少し実戦的なSIMD化

おわりに

ライセンス

Copyright (C) 2018-2020 Hiroshi Watanabe

この文章と絵(pptxファイルを含む)はクリエイティブ・コモンズ 4.0 表示 (CC-BY 4.0)で提供する。

This article and pictures are licensed under a Creative Commons Attribution 4.0 International License.

本リポジトリに含まれるプログラムは、MITライセンスで提供する。

The source codes in this repository are licensed under the MIT License.

なお、HTML版の作成に際し、CSSとしてgithub-markdown-cssを利用しています。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].