SlideShare uma empresa Scribd logo
1 de 97
« Есть ли жизнь после  MPI ? » Абрамов С.М. д.ф.-м.н.,  чл.-корр. РАН ,    ИПС имени А.К.Айламазяна РАН
Абрамов С.М. † , Климов А.В.  ‡ , Лацис А.О.  ‡ , Московский А.А.  † † ИПС имени А.К.Айламазяна РАН ‡ ИПМ имени М.В.Келдыша РАН Доклад 2009.10.31, Нижний Новгород Есть ли жизнь после  MPI ? 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Переславль-Залесский. Институт программных систем имени А.К.Айламазяна Российской академии наук 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Переславль-Залесский ,[object Object],[object Object],[object Object],[object Object],[object Object],Москва Переславль-Залесский 120  км 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
ИПС имени А.К.Айламазяна РАН, Переславль-Залесский 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Основание Института ,[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
2009:  Организационная структура института ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Университет города Переславля имени А.К.Айламазяна 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Программы «СКИФ» и «СКИФ-ГРИД» ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Семейство суперЭВМ   «СКИФ»: Ряды 1, 2, 3 и 4 2032 Gflops СКИФ К-1000 472 Gflops СКИФ К-500 57 Gflops Первенец-М 26 Gflops ВМ5100 11 Gflops Первенец 47.17 Tflops СКИФ МГУ 12.2 Tflops СКИФ Урал 9 Тflops СКИФ Cyberia 1 кв.2012 СКИФ П~5.0 3 кв. 2010 СКИФ П-1.0 3 кв. 2009 СКИФ П-0.5 Сделано: Ряды 1–3 Ближайшие планы: Ряд 4 Linpack 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд  Ряд 1 Ряд 2 Ряд 3 Ряд 4
2002 июнь МВС 1000 M 0.734/1.024  TFlops 2003 ноябрь СКИФ К-500 0.423/0.717  TFlops 2004 ноябрь СКИФ К-1000 2.032/2.534  TFlops 2007 февраль СКИФ  Cyberia 9 .0 13 / 1 2. 002   TFlops 200 8  май СКИФ Урал 12.2/15.9  TFlops 200 8  май СКИФ МГУ 47.1/60  TFlops За все время только шесть созданных в России суперЭВМ вошли в  Top500 .   Пять из шести—СКИФы! 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Что затрудняет эффективное использование  MPI  в суперЭВМ ближайшего будущего? 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Проблемы  MPI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Т-система: автоматическое динамическое распараллеливание программ 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Т-система (неформально) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд  a 6 b 5 c 3 d 9 u v w F … d = G(a, b) b = d u = a d = c v = a w = b …
4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд  a 6 b 5 c 3 d u v w F … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд  a 6 b c 3 d u v w F … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд  a 6 b c 3 d u v w F 6 … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд  a 6 b c 3 d 3 u v w F 6 … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд  a 6 b c 3 d 3 u v w F 6 … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд  a 6 b c 3 d 3 u v w F 6 … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд  6 6 5 G
T-System History ,[object Object],[object Object],[object Object],[object Object]
Open TS Overview
Comparison: T-System and MPI Sequential Parallel C/Fortran T-System Assembler MPI High-level a few keywords Low-level hundred(s) primitives
T-System in Comparison Related work Open TS differentiator Charm++ FP-based approach UPC, mpC++ Implicit parallelism Glasgow Parallel Haskell Allows C/C++ based low-level optimization OMPC++ Provides both language and C++ templates library Cilk Supports SMP, MPI, PVM, and GRID platforms
Open TS: an Outline ,[object Object],[object Object],[object Object],[object Object]
Т- Approach ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Т++  Keywords ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Short Introduction (Sample Programs)
Sample Program (C++) #include <stdio.h> int  fib  (int n) { return n < 2  ?  n :  fib (n-1)+  fib (n-2); } int  main  (int argc, char **argv) { if (argc != 2) { printf(&quot;Usage: fib <n>&quot;); return 1; } int n = atoi(argv[1]); printf(&quot;fib(%d) = %d&quot;, n,  fib (n)); return 0; }
Sample Program (T++) #include <stdio.h> tfun  int  fib  (int n) { return n < 2  ?  n :  fib (n-1)+  fib (n-2); } tfun  int  main  (int argc, char **argv) { if (argc != 2) { printf(&quot;Usage: fib <n>&quot;); return 1; } int n = atoi(argv[1]); printf(&quot;fib(%d) = %d&quot;, n,  (int) fib (n)); return 0; }
Sample Program (T++) ,[object Object],[object Object],[object Object],[object Object],[object Object],CPU Cores
Approximate calculation of Pi (C++) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],double  f (double x) { return 4/(1+x*x); } int  main (int argc, char* argv[]){ unsigned long h; double a, b, d, sum; i f (argc < 2) {return 0;} a = 0; b = 1; h = atol(argv[1]); d = fabs(b - a) / h; sum =  isum (a, b, d); printf(&quot;PI is approximately %15.15lf&quot;, sum); return 0; }
Approximate calculation of Pi (T++) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],tfun  double  f (double x) { return 4/(1+x*x); } tfun  int  main (int argc, char* argv[]){ unsigned long h; double a, b, d, sum; i f (argc < 2) {return 0;} a = 0; b = 1; h = atol(argv[1]); d = fabs(b - a) / h; sum =  isum (a, b, d); printf(&quot;PI is approximately %15.15lf&quot;, sum); return 0; }
Calculation of Pi (T++) ,[object Object],[object Object],[object Object],[object Object],[object Object],CPU Cores
Map-Reduce ,[object Object]
Map-Reduce (C++) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],cout << &quot; Filling vectors...&quot; << endl; for (int i = 1; i <= vector_size; i++) { a.push_back(i % factor); b.push_back((vector_size + 1 - i) % factor); c.push_back(0); fa.push_back(0); fb.push_back(0); } cout << &quot; Mapping...&quot; << endl; transform(a.begin(),  a.end(),  fa.begin(),  fib ); cout << &quot; Mapping...&quot; << endl; transform(b.begin(),  b.end(),  fb.begin(),  fib ); cout << &quot; Reducing...&quot; << endl; transform(fa.begin(), fa.end(), fb.begin(), c.begin(), ::plus); cout << endl << &quot; Result: (&quot; ; ostream_iterator<int> output(cout, &quot; &quot;); copy(c.begin(), c.end(), output);  cout << &quot;)&quot; << endl; return 0; }
Map-Reduce (C++) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],cout << &quot; Filling vectors...&quot; << endl; for (int i = 1; i <= vector_size; i++) { a.push_back(i % factor); b.push_back((vector_size + 1 - i) % factor); c.push_back(0); fa.push_back(0); fb.push_back(0); } cout << &quot; Mapping...&quot; << endl; transform(a.begin(),  a.end(),  fa.begin(),  fib ); cout << &quot; Mapping...&quot; << endl; transform(b.begin(),  b.end(),  fb.begin(),  fib ); cout << &quot; Reducing...&quot; << endl; transform(fa.begin(), fa.end(), fb.begin(), c.begin(), ::plus); cout << endl << &quot; Result: (&quot; ; ostream_iterator<int> output(cout, &quot; &quot;); copy(c.begin(), c.end(), output);  cout << &quot;)&quot; << endl; return 0; } Fibonacci Just “Plus”
Map-Reduce (C++) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],cout << &quot; Filling vectors...&quot; << endl; for (int i = 1; i <= vector_size; i++) { a.push_back(i % factor); b.push_back((vector_size + 1 - i) % factor); c.push_back(0); fa.push_back(0); fb.push_back(0); } cout << &quot; Mapping...&quot; << endl; transform(a.begin(),  a.end(),  fa.begin(),  fib ); cout << &quot; Mapping...&quot; << endl; transform(b.begin(),  b.end(),  fb.begin(),  fib ); cout << &quot; Reducing...&quot; << endl; transform(fa.begin(), fa.end(), fb.begin(), c.begin(), ::plus); cout << endl << &quot; Result: (&quot; ; ostream_iterator<int> output(cout, &quot; &quot;); copy(c.begin(), c.end(), output);  cout << &quot;)&quot; << endl; return 0; } Filling vectors: a=[ k%23 | k  [1..40]] b= [ (41-k)%23 | k  [1..40]] Five vectors: a, b, fa, fb, c
Map-Reduce (C++) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],cout << &quot; Filling vectors...&quot; << endl; for (int i = 1; i <= vector_size; i++) { a.push_back(i % factor); b.push_back((vector_size + 1 - i) % factor); c.push_back(0); fa.push_back(0); fb.push_back(0); } cout << &quot; Mapping...&quot; << endl; transform(a.begin(),  a.end(),  fa.begin(),  fib ); cout << &quot; Mapping...&quot; << endl; transform(b.begin(),  b.end(),  fb.begin(),  fib ); cout << &quot; Reducing...&quot; << endl; transform(fa.begin(), fa.end(), fb.begin(), c.begin(), ::plus); cout << endl << &quot; Result: (&quot; ; ostream_iterator<int> output(cout, &quot; &quot;); copy(c.begin(), c.end(), output);  cout << &quot;)&quot; << endl; return 0; } Transform vectors: fa = map fib a fb = map fib b c = zipWith plus fa fb
Map-Reduce (C++) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],cout << &quot; Filling vectors...&quot; << endl; for (int i = 1; i <= vector_size; i++) { a.push_back(i % factor); b.push_back((vector_size + 1 - i) % factor); c.push_back(0); fa.push_back(0); fb.push_back(0); } cout << &quot; Mapping...&quot; << endl; transform(a.begin(),  a.end(),  fa.begin(),  fib ); cout << &quot; Mapping...&quot; << endl; transform(b.begin(),  b.end(),  fb.begin(),  fib ); cout << &quot; Reducing...&quot; << endl; transform(fa.begin(), fa.end(), fb.begin(), c.begin(), ::plus); cout << endl << &quot; Result: (&quot; ; ostream_iterator<int> output(cout, &quot; &quot;); copy(c.begin(), c.end(), output);  cout << &quot;)&quot; << endl; return 0; }
Map-Reduce (T++) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],cout << &quot; Filling vectors...&quot; << endl; for (int i = 1; i <= vector_size; i++) { a.push_back(i % factor); b.push_back((vector_size + 1 - i) % factor); c.push_back(0); fa.push_back(0); fb.push_back(0); } cout << &quot; Mapping...&quot; << endl; transform(a.begin(),  a.end(),  fa.begin(),  fib ); cout << &quot; Mapping...&quot; << endl; transform(b.begin(),  b.end(),  fb.begin(),  fib ); cout << &quot; Reducing...&quot; << endl; transform(fa.begin(), fa.end(), fb.begin(), c.begin(), ::plus); cout << endl << &quot; Result: (&quot; ; ostream_iterator<int> output(cout, &quot; &quot;); copy(c.begin(), c.end(), output);  cout << &quot;)&quot; << endl; return 0; } Vector of T-values
Map-Reduce (T++): “Laziness”  Filling, mapping  —  all T-functions are invoked, no T-Functions calculated:  0 seconds Calculating of all T-functions, printing out:  8 seconds
Map-Reduce (T++) ,[object Object],[object Object],[object Object],[object Object],[object Object],CPU Cores
Inside OpenTS
Open TS :  Environment Supports more then 1,000,000 threads per core
Supermemory ,[object Object],[object Object],[object Object],[object Object],[object Object]
Multithreading  & Communications ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Open TS applications (selected)
MultiGen Chelyabinsk State University Level  0 Level  1 Level  2 Multi-conformation model К0 К11 К12 К21 К22
MultiGen: Speedup National Cancer Institute USA Reg.No. NCI-609067 (AIDS drug lead) TOSLAB company  ( Russia-Belgium ) Reg.No. TOSLAB A2-0261 (antiphlogistic  drug lead ) National Cancer Institute USA Reg.No. NCI-6 41295 (AIDS drug lead) Substance Atom number Rotations number Conformers Execution time  ( min .:с) 1  node 4  nodes 16  nodes NCI- 609067 28 4 13 9:33  3:21 1:22 TOSLAB A 2-0261 82 18 49 115:27 39:23 16:09 NCI- 641295 126 25 74 266:19 95:57 34:48
Aeromechanics Institute of Mechanics, MSU
Belocerkovski’s   approach flow presented as a collection of small elementary whirlwind (colours:  clockwise and  contra-clockwise rotation)
Creating space-born radar image from hologram Space Research Institute Development
Simulating broadband radar signal ,[object Object],[object Object]
Landsat Image Classification   ,[object Object]
Open TS vs. MPI case study
Applications ,[object Object],[object Object],[object Object],[object Object]
T-PovRay vs. MPI PovRay:  code complexity ~7 —15  times Program Source code volume MPI modules for  PovRay 3.10g 1,500 lines MPI patch for  PovRay 3.50c 3,000 lines T++ modules (for both versions 3.10g & 3.50c) 200 lines
T-PovRay vs. MPI PovRay:  performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB ,  GigE, LAM 7.1.1
T-PovRay vs MPI PovRay:  performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB ,  GigE, LAM 7.1.1
ALCMD/MPI vs ALCMD/OpenTS  ,[object Object],[object Object]
ALCMD/MPI vs ALCMD/OpenTS :  code complexity ~7   times Program Source code volume MP_Lite total/MPI ~20,000 lines MP_Lite,ALCMD-related/ MPI ~3,500 lines MP_Lite,ALCMD-related/ OpenTS 500 lines
ALCMD/MPI vs ALCMD/OpenTS:  performance 16 dual Athlon 1800, AMD Athlon MP 1800+ RAM 1GB,  FastEthernet, LAM 7.0.6, Lennard-Jones MD, 512000 atoms
ALCMD/MPI vs ALCMD/OpenTS:  performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB ,  GigE, LAM 7.1.1, Lennard-Jones MD, 512000 atoms
ALCMD/MPI vs ALCMD/OpenTS:  performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB ,  InfiniBand,MVAMPICH 0.9.4, Lennard-Jones MD,512000 atoms
ALCMD/MPI vs ALCMD/OpenTS:  performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB ,  GigE, LAM 7.1.1, Lennard-Jones MD, 512000 atoms
ALCMD/MPI vs ALCMD/OpenTS:  performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB ,  InfiniBand,MVAMPICH 0.9.4, Lennard-Jones MD,512000 atoms
Porting OpenTS to MS Windows CCS
2006: contract with Microsoft “Porting OpenTS to Windows Compute Cluster Server” ,[object Object],[object Object],[object Object],[object Object]
[email_address] ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Installer of OpenTS for Windows XP/2003/WCCS
OpenTS integration into Microsoft Visual Studio 2005
Open TS  “Gadgets”
Web-services, Live documents ,[object Object],[object Object],[object Object],<operation name=&quot;wstfib&quot;> <SOAP:operation style=&quot;rpc&quot; soapAction=&quot;&quot;/> <input> < SOAP:body use=&quot;encoded&quot; namespace=&quot;urn:myservice“   encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;/> </input> <output> <SOAP:body use=&quot;encoded&quot; namespace=&quot;urn:myservice&quot; encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;/> </output> </operation> twsgen Perl script
Trace visualizer ,[object Object],[object Object]
Fault-tolerance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Some other Gadgets ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Full / Empty Bit (FEB)  и Т-Система 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
FEB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Монотонные объекты, как безопасное расширение функциональной модели 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Идеи расширения ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Библиотеки односторонних обменов —  SHMEM , Gasnet, ARMCI 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Основные черты технологии  SHMEM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Технология  SHMEM ,[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
SHMEM:  Односторонние обмены ,[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
SHMEM:  Операции синхронизации ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Ожидание переменной ,[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Модели  PGAS (Partitioned Global Address Space) , DSM (Distributed Shared Memory) , языки  Co-Array Fortran ,  UPC … 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Модель памяти ,[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Что такое  UPC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Модель исполнения ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Пример 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Вместо заключения 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
Спасибо за внимание! 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд

Mais conteúdo relacionado

Mais procurados

2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципыHappyDev
 
20071014 efficientalgorithms kulikov_lecture04
20071014 efficientalgorithms kulikov_lecture0420071014 efficientalgorithms kulikov_lecture04
20071014 efficientalgorithms kulikov_lecture04Computer Science Club
 
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...Dev2Dev
 
20080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture1820080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture18Computer Science Club
 
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Mikhail Kurnosov
 
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...corehard_by
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНСit-people
 
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...Alexey Paznikov
 
Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)Mikhail Kurnosov
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Mikhail Kurnosov
 
Семинар 4. Многопоточное программирование на OpenMP (часть 4)
Семинар 4. Многопоточное программирование на OpenMP (часть 4)Семинар 4. Многопоточное программирование на OpenMP (часть 4)
Семинар 4. Многопоточное программирование на OpenMP (часть 4)Mikhail Kurnosov
 
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...Alexey Paznikov
 
Введение в потоки питона
Введение в потоки питонаВведение в потоки питона
Введение в потоки питонаAndrey Niahajchyk
 
Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)
Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)
Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)IT-Доминанта
 
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Alexander Borzunov
 
Гареев Роман, Создание генератора промежуточного представления Ssa из полиэдр...
Гареев Роман, Создание генератора промежуточного представления Ssa из полиэдр...Гареев Роман, Создание генератора промежуточного представления Ssa из полиэдр...
Гареев Роман, Создание генератора промежуточного представления Ssa из полиэдр...Darya Zubova
 
20070923 efficientalgorithms kulikov_lecture01
20070923 efficientalgorithms kulikov_lecture0120070923 efficientalgorithms kulikov_lecture01
20070923 efficientalgorithms kulikov_lecture01Computer Science Club
 
Ускоряем сборку С++ проектов. Практика использования unity-сборок
Ускоряем сборку С++ проектов. Практика использования unity-сборокУскоряем сборку С++ проектов. Практика использования unity-сборок
Ускоряем сборку С++ проектов. Практика использования unity-сборокcorehard_by
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Mikhail Kurnosov
 

Mais procurados (20)

2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
 
20071014 efficientalgorithms kulikov_lecture04
20071014 efficientalgorithms kulikov_lecture0420071014 efficientalgorithms kulikov_lecture04
20071014 efficientalgorithms kulikov_lecture04
 
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
 
20080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture1820080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture18
 
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
 
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
 
Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)
 
Семинар 4. Многопоточное программирование на OpenMP (часть 4)
Семинар 4. Многопоточное программирование на OpenMP (часть 4)Семинар 4. Многопоточное программирование на OpenMP (часть 4)
Семинар 4. Многопоточное программирование на OpenMP (часть 4)
 
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...
 
Введение в потоки питона
Введение в потоки питонаВведение в потоки питона
Введение в потоки питона
 
Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)
Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)
Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)
 
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
 
Гареев Роман, Создание генератора промежуточного представления Ssa из полиэдр...
Гареев Роман, Создание генератора промежуточного представления Ssa из полиэдр...Гареев Роман, Создание генератора промежуточного представления Ssa из полиэдр...
Гареев Роман, Создание генератора промежуточного представления Ssa из полиэдр...
 
20070923 efficientalgorithms kulikov_lecture01
20070923 efficientalgorithms kulikov_lecture0120070923 efficientalgorithms kulikov_lecture01
20070923 efficientalgorithms kulikov_lecture01
 
Ускоряем сборку С++ проектов. Практика использования unity-сборок
Ускоряем сборку С++ проектов. Практика использования unity-сборокУскоряем сборку С++ проектов. Практика использования unity-сборок
Ускоряем сборку С++ проектов. Практика использования unity-сборок
 
OpenACC short review
OpenACC short reviewOpenACC short review
OpenACC short review
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)
 

Destaque

Ropa para Mujer
Ropa para MujerRopa para Mujer
Ropa para Mujerpulleiva
 
трасировка Mpi приложений
трасировка Mpi приложенийтрасировка Mpi приложений
трасировка Mpi приложенийMichael Karpov
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложенийMichael Karpov
 
якобовский - введение в параллельное программирование (1)
якобовский - введение в параллельное программирование (1)якобовский - введение в параллельное программирование (1)
якобовский - введение в параллельное программирование (1)Michael Karpov
 
российские суперкомпьютеры (современность)
российские суперкомпьютеры (современность)российские суперкомпьютеры (современность)
российские суперкомпьютеры (современность)Michael Karpov
 

Destaque (8)

Ropa para Mujer
Ropa para MujerRopa para Mujer
Ropa para Mujer
 
трасировка Mpi приложений
трасировка Mpi приложенийтрасировка Mpi приложений
трасировка Mpi приложений
 
20090720 smith
20090720 smith20090720 smith
20090720 smith
 
Les03
Les03Les03
Les03
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложений
 
якобовский - введение в параллельное программирование (1)
якобовский - введение в параллельное программирование (1)якобовский - введение в параллельное программирование (1)
якобовский - введение в параллельное программирование (1)
 
российские суперкомпьютеры (современность)
российские суперкомпьютеры (современность)российские суперкомпьютеры (современность)
российские суперкомпьютеры (современность)
 
Test design print
Test design printTest design print
Test design print
 

Semelhante a 2009 10-31 есть ли жизнь после mpi

11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)Smolensk Computer Science Club
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonovComputer Science Club
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++Pavel Tsukanov
 
Продолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийПродолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийAndrey Akinshin
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20DefconRussia
 
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Yandex
 
Основы программирования на C++
Основы программирования на C++Основы программирования на C++
Основы программирования на C++Olga Maksimenkova
 
CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSUlarhat
 
Лекция 6: Многопоточное программирование: часть 2 (Speedup, Amdahl's law, POS...
Лекция 6: Многопоточное программирование: часть 2 (Speedup, Amdahl's law, POS...Лекция 6: Многопоточное программирование: часть 2 (Speedup, Amdahl's law, POS...
Лекция 6: Многопоточное программирование: часть 2 (Speedup, Amdahl's law, POS...Mikhail Kurnosov
 
Почему Rust стоит вашего внимания
Почему Rust стоит вашего вниманияПочему Rust стоит вашего внимания
Почему Rust стоит вашего вниманияMichael Pankov
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Dima Dzuba
 
РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)Dmitry Evteev
 
DSLs in Lisp and Clojure
DSLs in Lisp and ClojureDSLs in Lisp and Clojure
DSLs in Lisp and ClojureVasil Remeniuk
 
Язык параллельного программирования Intel Cilk Plus
Язык параллельного программирования Intel Cilk PlusЯзык параллельного программирования Intel Cilk Plus
Язык параллельного программирования Intel Cilk PlusMikhail Kurnosov
 
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программированияПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программированияAlexey Paznikov
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекSWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекPython Meetup
 

Semelhante a 2009 10-31 есть ли жизнь после mpi (20)

введение в Gpu
введение в Gpuвведение в Gpu
введение в Gpu
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
 
msumobi2. Лекция 1
msumobi2. Лекция 1msumobi2. Лекция 1
msumobi2. Лекция 1
 
Продолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийПродолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложений
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20
 
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
 
Основы программирования на C++
Основы программирования на C++Основы программирования на C++
Основы программирования на C++
 
CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSU
 
Лекция 6: Многопоточное программирование: часть 2 (Speedup, Amdahl's law, POS...
Лекция 6: Многопоточное программирование: часть 2 (Speedup, Amdahl's law, POS...Лекция 6: Многопоточное программирование: часть 2 (Speedup, Amdahl's law, POS...
Лекция 6: Многопоточное программирование: часть 2 (Speedup, Amdahl's law, POS...
 
Почему Rust стоит вашего внимания
Почему Rust стоит вашего вниманияПочему Rust стоит вашего внимания
Почему Rust стоит вашего внимания
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
 
РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)
 
DSLs in Lisp and Clojure
DSLs in Lisp and ClojureDSLs in Lisp and Clojure
DSLs in Lisp and Clojure
 
Язык параллельного программирования Intel Cilk Plus
Язык параллельного программирования Intel Cilk PlusЯзык параллельного программирования Intel Cilk Plus
Язык параллельного программирования Intel Cilk Plus
 
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программированияПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекSWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
 

Mais de Michael Karpov

EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...
EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...
EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...Michael Karpov
 
Movement to business goals: Data, Team, Users (4C Conference)
Movement to business goals: Data, Team, Users (4C Conference)Movement to business goals: Data, Team, Users (4C Conference)
Movement to business goals: Data, Team, Users (4C Conference)Michael Karpov
 
Save Africa: NASA hackathon 2016
Save Africa: NASA hackathon 2016 Save Africa: NASA hackathon 2016
Save Africa: NASA hackathon 2016 Michael Karpov
 
Из третьего мира - в первый: ошибки в развивающихся продуктах (AgileDays 2014)
Из третьего мира - в первый: ошибки в развивающихся продуктах (AgileDays 2014) Из третьего мира - в первый: ошибки в развивающихся продуктах (AgileDays 2014)
Из третьего мира - в первый: ошибки в развивающихся продуктах (AgileDays 2014) Michael Karpov
 
Один день из жизни менеджера. Тактика: хорошие практики, скрытые опасности и ...
Один день из жизни менеджера. Тактика: хорошие практики, скрытые опасности и ...Один день из жизни менеджера. Тактика: хорошие практики, скрытые опасности и ...
Один день из жизни менеджера. Тактика: хорошие практики, скрытые опасности и ...Michael Karpov
 
Поговорим про ошибки (Sumit)
Поговорим про ошибки (Sumit)Поговорим про ошибки (Sumit)
Поговорим про ошибки (Sumit)Michael Karpov
 
(2niversity) проектная работа tips&tricks
(2niversity) проектная работа   tips&tricks(2niversity) проектная работа   tips&tricks
(2niversity) проектная работа tips&tricksMichael Karpov
 
"Пользователи: сигнал из космоса". CodeFest mini 2012
"Пользователи: сигнал из космоса". CodeFest mini 2012"Пользователи: сигнал из космоса". CodeFest mini 2012
"Пользователи: сигнал из космоса". CodeFest mini 2012Michael Karpov
 
(Analyst days2012) Как мы готовим продукты - вклад аналитиков
(Analyst days2012) Как мы готовим продукты - вклад аналитиков(Analyst days2012) Как мы готовим продукты - вклад аналитиков
(Analyst days2012) Как мы готовим продукты - вклад аналитиковMichael Karpov
 
Как сделать команде приятное - Михаил Карпов (Яндекс)
Как сделать команде приятное - Михаил Карпов (Яндекс)Как сделать команде приятное - Михаил Карпов (Яндекс)
Как сделать команде приятное - Михаил Карпов (Яндекс)Michael Karpov
 
Как мы готовим продукты
Как мы готовим продуктыКак мы готовим продукты
Как мы готовим продуктыMichael Karpov
 
Hpc Visualization with WebGL
Hpc Visualization with WebGLHpc Visualization with WebGL
Hpc Visualization with WebGLMichael Karpov
 
Hpc Visualization with X3D (Michail Karpov)
Hpc Visualization with X3D (Michail Karpov)Hpc Visualization with X3D (Michail Karpov)
Hpc Visualization with X3D (Michail Karpov)Michael Karpov
 
сбор требований с помощью Innovation games
сбор требований с помощью Innovation gamesсбор требований с помощью Innovation games
сбор требований с помощью Innovation gamesMichael Karpov
 
Зачем нам Это? или Как продать agile команде
Зачем нам Это? или Как продать agile командеЗачем нам Это? или Как продать agile команде
Зачем нам Это? или Как продать agile командеMichael Karpov
 
"Зачем нам Это?" или как продать Agile команде
"Зачем нам Это?" или как продать Agile команде"Зачем нам Это?" или как продать Agile команде
"Зачем нам Это?" или как продать Agile командеMichael Karpov
 
"Зачем нам Это?" или как продать Agile команде
"Зачем нам Это?" или как продать Agile команде"Зачем нам Это?" или как продать Agile команде
"Зачем нам Это?" или как продать Agile командеMichael Karpov
 
Высоконагруженая команда - AgileDays 2010
Высоконагруженая команда - AgileDays 2010Высоконагруженая команда - AgileDays 2010
Высоконагруженая команда - AgileDays 2010Michael Karpov
 

Mais de Michael Karpov (20)

EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...
EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...
EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...
 
Movement to business goals: Data, Team, Users (4C Conference)
Movement to business goals: Data, Team, Users (4C Conference)Movement to business goals: Data, Team, Users (4C Conference)
Movement to business goals: Data, Team, Users (4C Conference)
 
Save Africa: NASA hackathon 2016
Save Africa: NASA hackathon 2016 Save Africa: NASA hackathon 2016
Save Africa: NASA hackathon 2016
 
Из третьего мира - в первый: ошибки в развивающихся продуктах (AgileDays 2014)
Из третьего мира - в первый: ошибки в развивающихся продуктах (AgileDays 2014) Из третьего мира - в первый: ошибки в развивающихся продуктах (AgileDays 2014)
Из третьего мира - в первый: ошибки в развивающихся продуктах (AgileDays 2014)
 
Один день из жизни менеджера. Тактика: хорошие практики, скрытые опасности и ...
Один день из жизни менеджера. Тактика: хорошие практики, скрытые опасности и ...Один день из жизни менеджера. Тактика: хорошие практики, скрытые опасности и ...
Один день из жизни менеджера. Тактика: хорошие практики, скрытые опасности и ...
 
Поговорим про ошибки (Sumit)
Поговорим про ошибки (Sumit)Поговорим про ошибки (Sumit)
Поговорим про ошибки (Sumit)
 
(2niversity) проектная работа tips&tricks
(2niversity) проектная работа   tips&tricks(2niversity) проектная работа   tips&tricks
(2niversity) проектная работа tips&tricks
 
"Пользователи: сигнал из космоса". CodeFest mini 2012
"Пользователи: сигнал из космоса". CodeFest mini 2012"Пользователи: сигнал из космоса". CodeFest mini 2012
"Пользователи: сигнал из космоса". CodeFest mini 2012
 
(Analyst days2012) Как мы готовим продукты - вклад аналитиков
(Analyst days2012) Как мы готовим продукты - вклад аналитиков(Analyst days2012) Как мы готовим продукты - вклад аналитиков
(Analyst days2012) Как мы готовим продукты - вклад аналитиков
 
Как сделать команде приятное - Михаил Карпов (Яндекс)
Как сделать команде приятное - Михаил Карпов (Яндекс)Как сделать команде приятное - Михаил Карпов (Яндекс)
Как сделать команде приятное - Михаил Карпов (Яндекс)
 
Как мы готовим продукты
Как мы готовим продуктыКак мы готовим продукты
Как мы готовим продукты
 
Hpc Visualization with WebGL
Hpc Visualization with WebGLHpc Visualization with WebGL
Hpc Visualization with WebGL
 
Hpc Visualization with X3D (Michail Karpov)
Hpc Visualization with X3D (Michail Karpov)Hpc Visualization with X3D (Michail Karpov)
Hpc Visualization with X3D (Michail Karpov)
 
сбор требований с помощью Innovation games
сбор требований с помощью Innovation gamesсбор требований с помощью Innovation games
сбор требований с помощью Innovation games
 
Зачем нам Это? или Как продать agile команде
Зачем нам Это? или Как продать agile командеЗачем нам Это? или Как продать agile команде
Зачем нам Это? или Как продать agile команде
 
"Зачем нам Это?" или как продать Agile команде
"Зачем нам Это?" или как продать Agile команде"Зачем нам Это?" или как продать Agile команде
"Зачем нам Это?" или как продать Agile команде
 
"Зачем нам Это?" или как продать Agile команде
"Зачем нам Это?" или как продать Agile команде"Зачем нам Это?" или как продать Agile команде
"Зачем нам Это?" или как продать Agile команде
 
HPC Visualization
HPC VisualizationHPC Visualization
HPC Visualization
 
Hpc Visualization
Hpc VisualizationHpc Visualization
Hpc Visualization
 
Высоконагруженая команда - AgileDays 2010
Высоконагруженая команда - AgileDays 2010Высоконагруженая команда - AgileDays 2010
Высоконагруженая команда - AgileDays 2010
 

2009 10-31 есть ли жизнь после mpi

  • 1. « Есть ли жизнь после MPI ? » Абрамов С.М. д.ф.-м.н., чл.-корр. РАН , ИПС имени А.К.Айламазяна РАН
  • 2. Абрамов С.М. † , Климов А.В. ‡ , Лацис А.О. ‡ , Московский А.А. † † ИПС имени А.К.Айламазяна РАН ‡ ИПМ имени М.В.Келдыша РАН Доклад 2009.10.31, Нижний Новгород Есть ли жизнь после MPI ? 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 3. Переславль-Залесский. Институт программных систем имени А.К.Айламазяна Российской академии наук 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 4.
  • 5. ИПС имени А.К.Айламазяна РАН, Переславль-Залесский 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 6.
  • 7.
  • 8. Университет города Переславля имени А.К.Айламазяна 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 9.
  • 10. Семейство суперЭВМ «СКИФ»: Ряды 1, 2, 3 и 4 2032 Gflops СКИФ К-1000 472 Gflops СКИФ К-500 57 Gflops Первенец-М 26 Gflops ВМ5100 11 Gflops Первенец 47.17 Tflops СКИФ МГУ 12.2 Tflops СКИФ Урал 9 Тflops СКИФ Cyberia 1 кв.2012 СКИФ П~5.0 3 кв. 2010 СКИФ П-1.0 3 кв. 2009 СКИФ П-0.5 Сделано: Ряды 1–3 Ближайшие планы: Ряд 4 Linpack 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд Ряд 1 Ряд 2 Ряд 3 Ряд 4
  • 11. 2002 июнь МВС 1000 M 0.734/1.024 TFlops 2003 ноябрь СКИФ К-500 0.423/0.717 TFlops 2004 ноябрь СКИФ К-1000 2.032/2.534 TFlops 2007 февраль СКИФ Cyberia 9 .0 13 / 1 2. 002 TFlops 200 8 май СКИФ Урал 12.2/15.9 TFlops 200 8 май СКИФ МГУ 47.1/60 TFlops За все время только шесть созданных в России суперЭВМ вошли в Top500 . Пять из шести—СКИФы! 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 12. Что затрудняет эффективное использование MPI в суперЭВМ ближайшего будущего? 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 13.
  • 14. Т-система: автоматическое динамическое распараллеливание программ 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 15.
  • 16. 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд a 6 b 5 c 3 d 9 u v w F … d = G(a, b) b = d u = a d = c v = a w = b …
  • 17. 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд a 6 b 5 c 3 d u v w F … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
  • 18. 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд a 6 b c 3 d u v w F … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
  • 19. 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд a 6 b c 3 d u v w F 6 … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
  • 20. 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд a 6 b c 3 d 3 u v w F 6 … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
  • 21. 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд a 6 b c 3 d 3 u v w F 6 … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
  • 22. 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд a 6 b c 3 d 3 u v w F 6 … d = G(a, b) b = d u = a d = c v = a w = b … 6 5 G
  • 23. 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд 6 6 5 G
  • 24.
  • 26. Comparison: T-System and MPI Sequential Parallel C/Fortran T-System Assembler MPI High-level a few keywords Low-level hundred(s) primitives
  • 27. T-System in Comparison Related work Open TS differentiator Charm++ FP-based approach UPC, mpC++ Implicit parallelism Glasgow Parallel Haskell Allows C/C++ based low-level optimization OMPC++ Provides both language and C++ templates library Cilk Supports SMP, MPI, PVM, and GRID platforms
  • 28.
  • 29.
  • 30.
  • 32. Sample Program (C++) #include <stdio.h> int fib (int n) { return n < 2 ? n : fib (n-1)+ fib (n-2); } int main (int argc, char **argv) { if (argc != 2) { printf(&quot;Usage: fib <n>&quot;); return 1; } int n = atoi(argv[1]); printf(&quot;fib(%d) = %d&quot;, n, fib (n)); return 0; }
  • 33. Sample Program (T++) #include <stdio.h> tfun int fib (int n) { return n < 2 ? n : fib (n-1)+ fib (n-2); } tfun int main (int argc, char **argv) { if (argc != 2) { printf(&quot;Usage: fib <n>&quot;); return 1; } int n = atoi(argv[1]); printf(&quot;fib(%d) = %d&quot;, n, (int) fib (n)); return 0; }
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. Map-Reduce (T++): “Laziness” Filling, mapping — all T-functions are invoked, no T-Functions calculated: 0 seconds Calculating of all T-functions, printing out: 8 seconds
  • 46.
  • 48. Open TS : Environment Supports more then 1,000,000 threads per core
  • 49.
  • 50.
  • 51. Open TS applications (selected)
  • 52. MultiGen Chelyabinsk State University Level 0 Level 1 Level 2 Multi-conformation model К0 К11 К12 К21 К22
  • 53. MultiGen: Speedup National Cancer Institute USA Reg.No. NCI-609067 (AIDS drug lead) TOSLAB company ( Russia-Belgium ) Reg.No. TOSLAB A2-0261 (antiphlogistic drug lead ) National Cancer Institute USA Reg.No. NCI-6 41295 (AIDS drug lead) Substance Atom number Rotations number Conformers Execution time ( min .:с) 1 node 4 nodes 16 nodes NCI- 609067 28 4 13 9:33 3:21 1:22 TOSLAB A 2-0261 82 18 49 115:27 39:23 16:09 NCI- 641295 126 25 74 266:19 95:57 34:48
  • 54. Aeromechanics Institute of Mechanics, MSU
  • 55. Belocerkovski’s approach flow presented as a collection of small elementary whirlwind (colours: clockwise and contra-clockwise rotation)
  • 56. Creating space-born radar image from hologram Space Research Institute Development
  • 57.
  • 58.
  • 59. Open TS vs. MPI case study
  • 60.
  • 61. T-PovRay vs. MPI PovRay: code complexity ~7 —15 times Program Source code volume MPI modules for PovRay 3.10g 1,500 lines MPI patch for PovRay 3.50c 3,000 lines T++ modules (for both versions 3.10g & 3.50c) 200 lines
  • 62. T-PovRay vs. MPI PovRay: performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB , GigE, LAM 7.1.1
  • 63. T-PovRay vs MPI PovRay: performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB , GigE, LAM 7.1.1
  • 64.
  • 65. ALCMD/MPI vs ALCMD/OpenTS : code complexity ~7 times Program Source code volume MP_Lite total/MPI ~20,000 lines MP_Lite,ALCMD-related/ MPI ~3,500 lines MP_Lite,ALCMD-related/ OpenTS 500 lines
  • 66. ALCMD/MPI vs ALCMD/OpenTS: performance 16 dual Athlon 1800, AMD Athlon MP 1800+ RAM 1GB, FastEthernet, LAM 7.0.6, Lennard-Jones MD, 512000 atoms
  • 67. ALCMD/MPI vs ALCMD/OpenTS: performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB , GigE, LAM 7.1.1, Lennard-Jones MD, 512000 atoms
  • 68. ALCMD/MPI vs ALCMD/OpenTS: performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB , InfiniBand,MVAMPICH 0.9.4, Lennard-Jones MD,512000 atoms
  • 69. ALCMD/MPI vs ALCMD/OpenTS: performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB , GigE, LAM 7.1.1, Lennard-Jones MD, 512000 atoms
  • 70. ALCMD/MPI vs ALCMD/OpenTS: performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB , InfiniBand,MVAMPICH 0.9.4, Lennard-Jones MD,512000 atoms
  • 71. Porting OpenTS to MS Windows CCS
  • 72.
  • 73.
  • 74. Installer of OpenTS for Windows XP/2003/WCCS
  • 75. OpenTS integration into Microsoft Visual Studio 2005
  • 76. Open TS “Gadgets”
  • 77.
  • 78.
  • 79.
  • 80.
  • 81. Full / Empty Bit (FEB) и Т-Система 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 82.
  • 83. Монотонные объекты, как безопасное расширение функциональной модели 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 84.
  • 85. Библиотеки односторонних обменов — SHMEM , Gasnet, ARMCI 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91. Модели PGAS (Partitioned Global Address Space) , DSM (Distributed Shared Memory) , языки  Co-Array Fortran , UPC … 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 92.
  • 93.
  • 94.
  • 95.
  • 96. Вместо заключения 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд
  • 97. Спасибо за внимание! 4 Июнь, 2010 СКИФ-ГРИД © 2009 Все права защищены Слайд

Notas do Editor

  1. 4 Июнь, 2010 ИПС РАН © 2009 Все права защищены
  2. 4 Июнь, 2010 ИПС РАН © 2009 Все права защищены
  3. 4 Июнь, 2010 ИПС РАН © 2009 Все права защищены
  4. Optimization through usability ----- it should be simple to do things in language that are low-cost for parallel computer It should be difficult to do things that are costly for parallel computer
  5. Not computationally intensive – but numerical integration has the same structure
  6. Not computationally intensive – but numerical integration has the same structure
  7. A concurrent version of this program can be obtained by adding “tfun” keyword near each function definition. Also, “tval” keyword must be added in type field in template vectors declaration. This means that these vectors will contain non-ready values. This example demonstrates that T++ allows to mix pure functional and imperative power of C++ on the T-calls level.
  8. A concurrent version of this program can be obtained by adding “tfun” keyword near each function definition. Also, “tval” keyword must be added in type field in template vectors declaration. This means that these vectors will contain non-ready values. This example demonstrates that T++ allows to mix pure functional and imperative power of C++ on the T-calls level.
  9. A concurrent version of this program can be obtained by adding “tfun” keyword near each function definition. Also, “tval” keyword must be added in type field in template vectors declaration. This means that these vectors will contain non-ready values. This example demonstrates that T++ allows to mix pure functional and imperative power of C++ on the T-calls level.
  10. A concurrent version of this program can be obtained by adding “tfun” keyword near each function definition. Also, “tval” keyword must be added in type field in template vectors declaration. This means that these vectors will contain non-ready values. This example demonstrates that T++ allows to mix pure functional and imperative power of C++ on the T-calls level.
  11. A concurrent version of this program can be obtained by adding “tfun” keyword near each function definition. Also, “tval” keyword must be added in type field in template vectors declaration. This means that these vectors will contain non-ready values. This example demonstrates that T++ allows to mix pure functional and imperative power of C++ on the T-calls level.
  12. A concurrent version of this program can be obtained by adding “tfun” keyword near each function definition. Also, “tval” keyword must be added in type field in template vectors declaration. This means that these vectors will contain non-ready values. This example demonstrates that T++ allows to mix pure functional and imperative power of C++ on the T-calls level.
  13. Efficiency of parallel implementations are comparable The ratio time MPI (N)/time T (N) varies from 87% (T-PovRay is slightly slower then MPI-PovRay) to 173% (T-PovRay is considerably faster then MPI-PovRay) for cluster “SKIF FIRST-BORN M”; from 101% (T-PovRay is slightly faster) to 201% (T-PovRay is considerably faster) for cluster “SKIF K-1000”.
  14. Efficiency of parallel implementations are comparable The ratio time MPI (N)/time T (N) varies from 87% (T-PovRay is slightly slower then MPI-PovRay) to 173% (T-PovRay is considerably faster then MPI-PovRay) for cluster “SKIF FIRST-BORN M”; from 101% (T-PovRay is slightly faster) to 201% (T-PovRay is considerably faster) for cluster “SKIF K-1000”.
  15. Efficiency of parallel implementations are comparable The ratio time MPI (N)/time T (N) varies from 87% (T-PovRay is slightly slower then MPI-PovRay) to 173% (T-PovRay is considerably faster then MPI-PovRay) for cluster “SKIF FIRST-BORN M”; from 101% (T-PovRay is slightly faster) to 201% (T-PovRay is considerably faster) for cluster “SKIF K-1000”.
  16. Efficiency of parallel implementations are comparable The ratio time MPI (N)/time T (N) varies from 87% (T-PovRay is slightly slower then MPI-PovRay) to 173% (T-PovRay is considerably faster then MPI-PovRay) for cluster “SKIF FIRST-BORN M”; from 101% (T-PovRay is slightly faster) to 201% (T-PovRay is considerably faster) for cluster “SKIF K-1000”.
  17. Efficiency of parallel implementations are comparable The ratio time MPI (N)/time T (N) varies from 87% (T-PovRay is slightly slower then MPI-PovRay) to 173% (T-PovRay is considerably faster then MPI-PovRay) for cluster “SKIF FIRST-BORN M”; from 101% (T-PovRay is slightly faster) to 201% (T-PovRay is considerably faster) for cluster “SKIF K-1000”.
  18. Efficiency of parallel implementations are comparable The ratio time MPI (N)/time T (N) varies from 87% (T-PovRay is slightly slower then MPI-PovRay) to 173% (T-PovRay is considerably faster then MPI-PovRay) for cluster “SKIF FIRST-BORN M”; from 101% (T-PovRay is slightly faster) to 201% (T-PovRay is considerably faster) for cluster “SKIF K-1000”.
  19. Efficiency of parallel implementations are comparable The ratio time MPI (N)/time T (N) varies from 87% (T-PovRay is slightly slower then MPI-PovRay) to 173% (T-PovRay is considerably faster then MPI-PovRay) for cluster “SKIF FIRST-BORN M”; from 101% (T-PovRay is slightly faster) to 201% (T-PovRay is considerably faster) for cluster “SKIF K-1000”.
  20. 4 Июнь, 2010 ИПС РАН © 2009 Все права защищены