لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش برنامهنویسی موازی در جاوا (Parallel Programming in Java)
- آخرین آپدیت
دانلود Parallel Programming in Java
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
این دوره مفاهیم بنیادی برنامهنویسی موازی را در بستر Java 8 به یادگیرندگان (متخصصان صنعت و دانشجویان) آموزش میدهد. برنامهنویسی موازی به توسعهدهندگان اجازه میدهد تا با استفاده از چندین پردازنده به صورت همزمان، از توان محاسباتی کامپیوترهای چند هستهای برای افزایش سرعت برنامهها استفاده کنند. در پایان این دوره، شما یاد خواهید گرفت که چگونه از فریمورکهای محبوب جاوا برای برنامهنویسی موازی (مانند ForkJoin، Stream و Phaser) استفاده کنید تا برنامههایی برای طیف گستردهای از پلتفرمهای چند هستهای از جمله سرورها، دسکتاپها یا دستگاههای موبایل بنویسید. همچنین با مبانی نظری این حوزه از جمله گرافهای محاسباتی، موازیسازی ایدهآل، شتاب موازی (Parallel Speedup)، قانون آمداهل (Amdahl's Law)، رقابت دادهها (Data Races) و تعیینناپذیری (Determinism) آشنا خواهید شد.
چرا این دوره را انتخاب کنیم؟
• تمام کامپیوترهای امروزی چند هستهای هستند، بنابراین یادگیری نحوه گسترش دانش برنامهنویسی ترتیبی جاوا به سمت موازیسازی چند هستهای برای شما حیاتی است.
• جاوا ۷ و ۸ فریمورکهای جدیدی برای موازیسازی (ForkJoin و Stream) معرفی کردهاند که پارادایمهای برنامهنویسی موازی را نسبت به روزهای اولیه جاوا به طور قابل توجهی تغییر دادهاند.
• هر یک از چهار ماژول این دوره شامل یک پروژه کوچک (Mini-project) است که تجربه عملی لازم را برای استفاده از مفاهیم آموخته شده در پروژههای شخصی خود فراهم میکند.
• در طول دوره، شما دسترسی آنلاین به مدرس و مربیان خواهید داشت تا سوالات خود را در انجمنها مطرح کرده و پاسخهای اختصاصی دریافت کنید.
دستاوردهای آموزشی مورد انتظار این دوره عبارتند از:
• تئوری موازیسازی: گرافهای محاسباتی، کار (Work)، بازه (Span)، موازیسازی ایدهآل، شتاب موازی، قانون آمداهل، رقابت دادهها و تعیینناپذیری.
• موازیسازی وظایف (Task Parallelism) با استفاده از فریمورک ForkJoin جاوا.
• موازیسازی تابعی (Functional Parallelism) با استفاده از فریمورکهای Future و Stream در جاوا.
• موازیسازی در سطح حلقه (Loop-level) همراه با قابلیتهای مانع (Barriers) و گروهبندی تکرار (Chunking).
• موازیسازی جریان داده (Dataflow Parallelism) با استفاده از فریمورک Phaser و وظایف دادهمحور.
تسلط بر این مفاهیم شما را قادر میسازد تا بلافاصله آنها را در برنامههای چند هستهای جاوا به کار بگیرید و زیربنای لازم برای تسلط بر سایر سیستمهای برنامهنویسی موازی (مانند C++11، OpenMP و .Net Task Parallel Library) را برای شما فراهم میکند.
1.1 ایجاد و پایان وظایف (Async, Finish)
1.1 Task Creation and Termination (Async, Finish)
1.2 وظایف در فریمورک Fork/Join جاوا
1.2 Tasks in Java's Fork/Join Framework
1.3 گرافهای محاسباتی، کار و بازه (Work & Span)
1.3 Computation Graphs, Work, Span
1.4 زمانبندی چند پردازندهای و شتاب موازی
1.4 Multiprocessor Scheduling, Parallel Speedup
1.5 قانون آمداهل
1.5 Amdahl's Law
محاسبه مجموع معکوس آرایه با استفاده از Async Finish (دمو)
ReciprocalArraySum using Async-Finish (Demo)
محاسبه مجموع معکوس آرایه با استفاده از RecursiveAction در فریمورک Fork/Join (دمو)
ReciprocalArraySum using RecursiveAction's in Java's Fork/Join Framework (Demo)
2.5 رقابت دادهها (Data Races) و تعیینناپذیری
2.5 Data Races and Determinism
محاسبه مجموع معکوس آرایه با استفاده از RecursiveTask در فریمورک Fork/Join (دمو)
ReciprocalArraySum using RecursiveTask's in Java's Fork/Join Framework (Demo)
پردازش موازی لیستها با استفاده از Java Streams (دمو)
Parallel List Processing Using Java Streams (Demo)
گفتگو با Two Sigma: استفاده از این دانش در دنیای واقعی
Talking to Two Sigma: Using it in the Field
دیدگاه متخصص صنعت درباره برنامهنویسی موازی، همزمان و توزیعشده در جاوا - جیم وارد، مدیر عامل
Industry Professional on Parallel, Concurrent, and Distributed Programming in Java - Jim Ward, Managing Director
دیدگاه متخصصان صنعت درباره موازیسازی - جیک کورنبلاو و مارگارت کلی، مهندسان نرمافزار
Industry Professionals on Parallelism - Jake Kornblau and Margaret Kelley, Software Engineers
همگامسازی جریان داده و خط لوله (Pipelining)
Data flow Synchronization and Pipelining
4.1 موانع فاز دوگانه با استفاده از Java Phasers
4.1 Split-phase Barriers with Java Phasers
4.2 همگامسازی نقطه به نقطه با Phasers
4.2 Point-to-Point Sychronization with Phasers
4.3 میانگینگیری تکرارشونده یکبعدی با Phasers
4.3 One-Dimensional Iterative Averaging with Phasers
4.4 موازیسازی خط لوله (Pipeline Parallelism)
4.4 Pipeline Parallelism
4.5 موازیسازی جریان داده (Data Flow Parallelism)
4.5 Data Flow Parallelism
مثالهایی از Phaser
Phaser Examples
موازیسازی خط لوله و جریان داده
Pipeline & Data Flow Parallelism
ادامه مسیر با تخصص «برنامهنویسی موازی، همزمان و توزیعشده در جاوا»
Continue Your Journey with the Specialization "Parallel, Concurrent, and Distributed Programming in Java"
دیدگاه متخصص صنعت درباره همزمانی (Concurrency) - دکتر شمس امام، مهندس نرمافزار در Two Sigma
Industry Professional on Concurrency - Dr. Shams Imam, Software Engineer, Two Sigma
دیدگاه متخصص صنعت درباره توزیعشدگی (Distribution) - دکتر اریک آلن، نایب رئیس ارشد در Two Sigma
Industry Professional on Distribution - Dr. Eric Allen, Senior Vice President, Two Sigma
نمایش نظرات