مطالب پیشنهادی از سراسر وب

محاسبات و همزمانی با کارایی بالا

دسته بندی ها: آموزش سی پلاس پلاس ، آموزش های Infinite Skills ، برنامه نویسی موازی (Parallel Programming)

در گذشته (بیش از 35 سال گذشته) توسعه دهندگانی که می خواستند برنامه‌هایی نیمه عالی بنویسند باید سخت افزار شان را می شناختند. آن روزها گذشت، فرکانسهای کلاک به اوج خود رسیده و سخت افزار دیگر نمی تواند پشت زبانهای سطح بالا مطرح شود.

این دوره برای توسعه دهندگانی با نیازمندی‌هایی با کارآمدی بالا (بازی، آنالیز اقتصادی، محاسبات علمی و ...) طراحی شده است.

این دوره به شما می آموزد هنگام اجرای برنامه چه اتفاقاتی می افتند که باعث کند یا تند شدن برنامه می شوند. با تمرکز به همزمانی، مخصوصا همزمانی محلی (چند رشته‌ای) این دوره تماما برای نوشتن برنامه‌های بهینه که بهترین استفاده را از منابع پردازش موجود برای شما را می برند، می آموزد. گرچه کد نمونه به زبان سی پلاس پلاس نوشته شده اند، اما این دوره مخصوص سی پلاس پلاس نیست. اگر شما می توانید کد C++ بخوانید اما نمی توانید در کارتان استفاده کنید، همچنان این دوره برای شما مفید است.

آنچه در این دوره می آموزید:

  • یادگیری نحوه اجرای برنامه‌ها در سخت افزار و جزئیات کوچک که سرعت برنامه شما را تحت تاثیر قرار می دهد.
  • تمرین بهینه نوشتن برنامه‌ها برای استفاده حداکثری از CPU ها، cache ها و حافظه‌های امروزی
  • یادگیری اینکه چگونه CPU تک و چند هسته با حافظه در تعامل اند و نحوه اجتناب از کندی حافظه
  • یادگیری مدل‌های حافظه، ساختارهای داده همزمانی، همزمانی بدون قفل و همزمانی مبتنی بر قفل
  • کسب ابزارهای ضروری برای اندازه گیری کارایی برنامه‌ها و کامپوننت‌های آنها

Fedor G. Pikus دانشمند ارشد مهندسی در شاخه طراحی-به-سیلیکون Mentor Graphics و مهندس ارشد نرم افزار سابق در گوگل است. او ابزارهای اتوماسیون طراحی مورد استفاده افرادی که تراشه‌های رایانه‌ها، اتومبیل‌ها و موارد دیگر را می سازند، ایجاد می کند. او بیش از 25 ثبت اختراعات و بیش از 90 صفحه و ارائه کنفرانس روی فیزیک، EDA، طراحی نرم افزار و زبان C++ را دارد. او مدرک دکترا در فیزیک کاربردی از دانشگاه Peter the Great St. Petersburg Polytechnic را داراست.

اندازه گیری زمان در برنامه‌ها

نحوه تعامل Thread ها با حافظه

آیا این نوشته را دوست داشتید؟
High-Performance Computing and Concurrency Author:Fedor G. Pikus Duration:11:07:03

It's deja vu all over again. In the old days (35 plus years ago), developers wanting to write half-decent programs had to know their hardware. Those days are back. Clock frequencies have peaked and hardware can no longer be abstracted behind high-level languages. Designed for developers with high performance requirements (games, finance analysis, scientific computation, etc.), this course teaches you what really happens when programs are executed and the subtle details that make a program go slow or fast.With a focus on concurrency, specifically local concurrency (multi-threading), the course is all about writing efficient programs that make the best use of the computing resources available to you. While the sample code is written in C++, the course is not C++ specific. If you can read C++ code, but don’t use it in your work, you will still learn from this class. Learn how programs execute in hardware and the subtle details that affect program speed Practice writing efficient programs that get the most out of today’s CPUs, caches, and memory Discover how single and multi-core CPUs interact with memory and how to avoid memory slowness Explore memory models, concurrent data structures, lock-free concurrency, and lock-based concurrency Acquire the tools needed to measure the performance of programs and their componentsFedor G. Pikus is a chief engineering scientist in the Design-to-Silicon division of Mentor Graphics and a former senior software engineer at Google. Fedor builds the design automation tools used by the people who build the chips in your computers, cars, and more. He has over 25 patents, and over 90 papers and conference presentations on physics, EDA, software design, and the C++ language. He holds a Ph.D. in Applied Physics from Peter the Great St. Petersburg Polytechnic University.

پیشنهاد آموزش مرتبط در فرادرس