View Concepts for PGAS HPC Applications MUC 2017
- Slides: 18
View Concepts for PGAS HPC Applications MUC++ 2017 -09 -13 Tobias Fuchs, LMU t. fuchs@mnm-team. org @fuchsto dash-project. org 1
Containers in Partitioned Global Address Space 2
Containers in Partitioned Global Address Space 3
Containers in Partitioned Global Address Space dash: : Array<int> arr( size, dash: : BLOCKED); 4
Containers in Partitioned Global Address Space dash: : Array<int> arr( size, dash: : BLOCKED); auto l_arr = arr. local; int l_size = l_arr. size(); int * l_bg = l_arr. begin(); 5
Algorithms dash: : Array<int> arr(size); //. . . auto end = dash: : for_each( arr. begin(), arr. end(), unary_op); at every unit: 6
Algorithms dash: : Array<int> arr(size); //. . . auto end = dash: : for_each( arr. begin() + a, arr. begin() + b, unary_op); 7
Algorithms dash: : Array<int> arr(size); //. . . auto end = dash: : for_each( arr. begin() + 11, arr. begin() + 29, unary_op); auto l_range = arr | sub(11, 29) | local(); // -> view at local elements (1… 10) std: : for_each(l_range. begin(), l_range. end(), unary_op); 8
Algorithms dash: : Array<int> src(size); //. . . dash: : Array<int> dst(src. size()); auto cp_end = dash: : copy( src. begin() + sa, src. begin() + sb, dst. begin() + da); 9
Algorithms auto cp_end = dash: : copy( src. begin() + sa, src. begin() + sb, dst. begin() + da); auto l_src = arr | sub(sa, sb) | local(); if (l_src. empty()) return dst. begin() + db-da; auto g_lbeg = l_src | global(); . . . Takeaway message: We really, really need iterator indices. 10
Algorithms auto cp_end = dash: : copy( src. begin() + sa, src. begin() + sb, dst. begin() + da); auto l_src = arr | sub(sa, sb) | local(); if (l_src. empty()) return dst. begin() + db-da; auto g_lbeg = l_src | global(); . . . 11
“But but there already is ranges-v 3 and it rocks? “ Yes it does! github. com/ericniebler/range-v 3 12
Multidimensional Views / Ranges / Index Sets* But we are special: dash: : Matrix<int, 2> mat(8, 8); auto mat_rect = mat | sub<0>(3, 5) | sub<1>(2, 7); * we use the term index set to differentiate from index sequences which allow repetitions by definition 13
Multidimensional Views / Ranges / Index Sets* But we are special: dash: : Matrix<int, 2> mat(8, 8); auto mat_rect = mat | sub<0>(3, 5) | sub<1>(2, 7); * we use the term index set to differentiate from index sequences which allow repetitions by definition 14
Multidimensional Views / Ranges / Index Sets* But we are special: dash: : Matrix<int, 2> mat(8, 8); auto mat_rect = mat | local(); * we use the term index set to differentiate from index sequences which allow repetitions by definition 15
Multidimensional Views / Ranges / Index Sets But we are special: dash: : Matrix<int, 2> mat(8, 8); auto mat_rect = mat | sub<0>(3, 5) | sub<1>(2, 7) | local(); mat_rect | index() | serialize(); // result depending on unit: unit 0: { 9, 10, 11, 12, 13, 14 } unit 1: { 9, 11 } unit 2: { 8, 11 } 16
dash-project. org github. com/dash-project. slack. com doc. dash-project. org/papers doc. dash-project. org/slides doc. dash-project. org/files/wallpapers 17
Views based on Index Sets View. Iterator Agnostic of all this, just calls m_view[m_pos] on dereference using namespace dash; auto v_lsub = local(sub(110, 130, array); // View types are a model of their base // type concepts, so v_lsub is a model // of Array: for (const & T val : v_lsub) {. . . } View<View Dom, Index. Set I> Model of base container, issues View. Iterator instances, initialized with view domain and operator arguments // index set of view is accessible: auto i_lsub = index(lsub); // -> { 10, 11, . . . , 29, 30 } 18
- Mức view trong kiến trúc 3 mức
- Pressure abbreviation
- Ley de dalton
- Pgas=patm+ph
- Patm=pgas+ph2o
- Pgas=patm+h
- Pgas=patm+h
- Human genetics concepts and applications 10th edition
- Motivation from concepts to applications
- Starr evers starr biology concepts and applications
- Sơ đồ luồng dữ liệu mức ngữ cảnh
- Sơ đồ mức đỉnh
- Bts muc versailles
- Nhiệm vụ giáo dục chuẩn mực ngữ âm
- Pduc bts muc
- Bilan comptable bts nrc
- Sisearch
- étude réflexive ndrc exemple
- Bts muc en quoi ça consiste