Parallel Computing

Solve your problems or get new ideas with basic brainstorming

Get Started. It's Free
or sign up with your email address
Parallel Computing by Mind Map: Parallel Computing

1. کاربرد ها

1.1. استفاده از منابع از راه دور

1.1.1. SETI

1.1.2. Folding

1.1.3. پروژه پردازش موازی برای دانشگاه

1.2. Hash

1.2.1. Hash Function

1.2.1.1. Cryptographic Hash Function

1.2.1.1.1. ویژگی ها

1.2.1.1.2. کاربرد ها

1.2.1.1.3. Merkle–Damgård construction

2. روش های موازی کردن

2.1. MultiThread

2.1.1. مقدمه

2.1.1.1. برنامه نویسی چند نخی ؟

2.1.1.2. مزایای برنامه نویسی چند نخی

2.1.1.3. معایب برنامه نویسی چند نخی

2.1.2. مثال ها

2.2. Cluster Computer

2.2.1. اتصال چند کامپیوتر برای محاسبه

2.2.1.1. مثال ها

2.3. GPU Programming

2.3.1. مقدمه

2.3.1.1. Graphics Processing Unit

2.3.1.2. نحوه کار با واحد های پردازش گرفیک

2.3.1.2.1. Threads

2.3.1.2.2. Blocks

2.3.1.3. محیط و زبان برنامه نویسی

2.3.1.3.1. کامپایلر مخصوص NVIDIA

2.3.1.3.2. در زبان های برنامه نویسی دیگر

2.3.1.4. مثال ها

2.3.1.4.1. NVIDIA Compiler

2.3.1.4.2. PyCuda

2.4. Multi Proccessor

2.4.1. مثال ها

2.5. SIMD: Single Instruction Multiple Data

2.5.1. CPU Registers

2.5.1.1. MMX

2.5.1.2. XMM

2.5.2. مثال ها

2.6. Distributed Computing

2.7. Grid computing

3. الگوریتم های موازی

3.1. (88)آیا می توان همه برنامه ها را موازی کرد؟

3.2. با موازی کردن سرعت اجرا چه میزان افزایش می یابد؟

3.2.1. Amdahl's law

3.2.2. Gustafson's law

3.3. الگوریتم های موازی

4. زبان ها و کتابخانه های برنامه نویسی موازی

4.1. CPP

4.1.1. MPI

4.1.1.1. مثال ها

4.1.2. OpenMPI

4.2. Python

4.2.1. PP(Python Parallel)

4.2.2. مثال ها

4.2.2.1. نوشتن یک برنامه ساده به صورت موازی و غیر موازی

4.2.2.1.1. مقایسه سرعت اجرا

4.2.2.1.2. ppتوابع ماژول

4.2.3. mpi4pi

4.2.4. pympi

4.2.5. چرا پایتون

4.2.5.1. سرعت توسعه بالا

4.2.5.2. کفایت نیاز

4.2.5.3. تست های اولیه

4.2.5.4. مقالات علمی

4.3. Alef

4.4. joice

4.5. Bloom

4.6. APL

5. Memory and communication

5.1. Shared Memory

5.2. Distributed Memory

6. چرا پردازش موازی؟

6.1. کاهش زمان (و هزینه) اجرای محاسبات

6.2. انجام محاسبات بزرگتر و حل مسائل با مقیاس بزرگتر

6.3. فراهم نمودن امکان انجام همزمان محاسبات

6.4. معایب برنامه نویسی و پردازش خطی

6.4.1. سرعت حدی انتقال داده (سرعت نور)

6.4.2. محدودیت در ساخت و مینیاتوری کردن بوردها

6.4.3. محدودیتهای مالی و اقتصادی

7. موارد استفاده

7.1. محسابات هواشناسی

7.2. فیزیک محاسباتی (کاربردی، هسته‌ای، ذره‌ای، ماده چگال و ...)

7.3. علوم زیستی، بیو تکنولوژی و ژنتیک

7.4. شیمی محاسباتی (دینامیک مولکولی و ....)

7.5. محاسبات زمین شناسی و زلزله‌سنجی

7.6. محاسبات در مهندسی مکانیک (دینامیک سیالات محاسباتی، مکانیک محاسباتی و ....)

7.7. محاسبات در مهندسی برق و الکترونیک (طراحی مدار، میکروالکترونیک و ...)

7.8. گرافیک کامپیوتری و انیمیشن

8. مقدمه

8.1. نیاز به ‍پردازش موازی

8.1.1. شروع کامپیوتر به عنوان ماشین حساب

8.1.2. سیر صعودی قدرت پردازش

8.1.3. محدودیت های تک پردازنده ها

8.1.4. نیاز هرچه بیشتر به محاسبات سنگین و مثال ها

8.2. تشریح پردازش موازی

8.2.1. فرمی از پردازش که چند محاسبه را به طور همزمان انجام می دهد.

8.2.2. اعمال بزرگ می توانند به بخش های کوچکتر تقسیم شوند.

8.2.3. مثال خط تولید

9. چالش های پردازش موازی

9.1. Race Condition

9.2. برنامه نویسی دشوار