PDA

View Full Version : آموزش: parallel programing with C#



angel_10035
شنبه 01 اسفند 1388, 21:37 عصر
سلام دوستان
میخواستم در مورد parallel programing با سی شارپ اطلاعات بگیرم:کف:
ممنون میشم دوستان راهنمائی کنند
سپاس

r00tkit
شنبه 01 اسفند 1388, 21:54 عصر
سلام اول یه کتاب در مورد thread تو net. بخون

در مورد این سرچ کن Parallel Extensions (http://en.wikipedia.org/wiki/Parallel_Extensions)

ودر اخر اگه این کتاب رو گیر اوردی (به من هم بده) بخون
http://www.amazon.com/Concurrent-Programming-on-Windows-ebook/dp/B0015DYKI4/ref=sr_1_1?ie=UTF8&s=digital-text&qid=1266691087&sr=8-1
http://ecx.images-amazon.com/images/I/416HuIxjRPL._SL500_AA246_PIkin2,BottomRight,-2,34_AA280_SH20_OU01_.jpg

angel_10035
شنبه 01 اسفند 1388, 22:03 عصر
سلام
بحث thread , cuncurency رو نمی خوام
parallel programing مهمه چون فرق داره با موارده بالا :گریه:

Saeed.Masoumi
یک شنبه 02 اسفند 1388, 00:15 صبح
دوست عزیز اگه برنامه نویسی موازی می خوای همون پیاده سازی با نخ ها (Threads) است.
اگر منظورتون برنامه نویسی همروند (Concurrent) با استفاده از توپولوژی دگ ها وبستن CPU هاست که همونی کتابی که دوستمون معرفی کردن کار شما رو راه می ندازد.

r00tkit
یک شنبه 02 اسفند 1388, 00:30 صبح
سلام
بحث thread , cuncurency رو نمی خوام
parallel programing مهمه چون فرق داره با موارده بالا :گریه:
من نگفتم parallel با concurrency یکیه!:متعجب:
http://www.multicoreinfo.com/2009/07/concurrent-parallel/

http://blogs.sun.com/yuanlin/entry /concurrency_vs_parallelism_concurrent_programming (http://blogs.sun.com/yuanlin/entry%20/concurrency_vs_parallelism_concurrent_programming)

کی گفته parallel programing به thread ربط نداره ؟؟


http://msdn.microsoft.com/en-us/library/ms171868%28VS.100%29.aspx#parallel_computing
:




Parallel Computing

The .NET Framework 4 introduces a new programming model for writing multithreaded and asynchronous code that greatly simplifies the work of
application and library developers. The new model enables developers to write efficient, fine-grained, and scalable parallel code in a natural idiom without having to work directly with threads or the thread pool. The new System.Threading.Tasks (http://msdn.microsoft.com/en-us/library/system.threading.tasks%28VS.100%29.aspx) namespace and other related types support this new model. Parallel LINQ (PLINQ), which is a parallel implementation of LINQ to Objects, enables similar functionality through declarative syntax. For more information, see Parallel Programming in the .NET Framework (http://msdn.microsoft.com/en-us/library/dd460693%28VS.100%29.aspx).


http://msdn.microsoft.com/en-us/library/dd460693%28VS.100%29.aspx


Parallel Programming in the .NET Framework

Many personal computers and workstations have two or four cores (that is, CPUs) that enable multiple threads to be executed simultaneously. Computers in the near future are expected to have significantly more cores. To take advantage of the hardware of today and tomorrow, you can parallelize your code to distribute work across multiple processors. In the past, parallelization required low-level manipulation of threads and locks. Visual Studio 2010 and the .NET Framework 4 enhance support for parallel programming by providing a new runtime, new class library types, and new diagnostic tools. These features simplify parallel development so that you can write efficient, fine-grained, and scalable parallel code in a natural idiom without having to work directly with threads or the thread pool. The following illustration provides a high-level overview of the parallel programming architecture in the .NET Framework 4.



یعنی برای parallel نیاز به thread هست چون اصلا چی می خواد به صورت parallel اجرا شه ؟ همین thread . ولی برنامه نویسی در C#‎‎‎ به صورت parallel طوری هست که برنامه نویس نیاز به کار مستقیم با thread ها رو نداره

حالا به نظر شما بدون درک thread ادم می تونه مفهوم parrallel رو درک کنه؟؟
مثال:



string[] names = { "cartman", "stan", "kenny", "kyle" };
names.EachParallel(name =>
{
Console.WriteLine(name);
});
ولی توی یه جا خودم هم مشکل دارم :مگه councurrency با parrallel فرق نداره پس چرا بعضی کتاب ها یه چنین اسم هایی دارن

http://oreilly.com/catalog/9780596521547
The Art of Concurrency:
A Thread Monkey's Guide to Writing Parallel Applications

یا کتاب
Concurrent Programming on Windows در مورد parallel هستش یا ? /concurrency اسمش یه چیز میگه توضیح کتاب تو amazonیه چیز دیگه؟

Saeed.Masoumi
یک شنبه 02 اسفند 1388, 01:18 صبح
ولی توی یه جا خودم هم مشکل دارم :مگه councurrency با parrallel فرق نداره پس چرا بعضی کتاب ها یه چنین اسم هایی دارنسلام
برنامه نویسی موازی , نرم افزاری است و بستگی به سیستم عامل شما دارد که آیا از مالتی تسکینگ حمایت می کند یا نه؟
برنامه نویسی هم روند زمانی مطرح میشه که سخت افزار شما از آن حمایت کنه یعنی تعداد n پردازنده دارید و می خواهید با استفاده از دگ داده شده انها را به هم متصل کنید تا اینجا می شه آماده کردن پیشنیاز ها ولی در هر صورت برای اجرای دستوران نیاز به کار های نرم افزاری است و چون شما می خواهید برنامه خود را به صورت موازی بر روی چند سی پی یو پردازی کنید نیاز تارید که هم از نخ ها استفاده کنید هم از همروندی.
اگر توجه کنید برنامه نویسی موازی (صرفا نرم افزاری) در واقع اصلا موازی نیست بلکه این پردازنده است که با تقسیم زمان (مدیریت زمان) به هر فرآیند باعث پیشرفت آن فرآیند می شود و چون این سوئچینگ بسیار سریع است به نظر انسانها موازی می آید در حالی که چنین نیست اما در بر نامه نویسی همروند صد در صد در حال استفاده از یک سیستم موازی هستیم به طوری که هر پردازنده مستقل از پردازنده های دیگر کار کرده و تنها چیز مشترک بین آنها داده ها و اطلاعات است که بین آنها سلسله مراتبی منتقل می شود.
در ضمن هر جا نیاز به اجرای دستور عمل های موازی هستیم نیاز داریم که از نخ ها استفاده کنیم
پس می بینید که برای برنامه نویسی هم روند نیاز به دانستن ترید ها هست.

angel_10035
یک شنبه 02 اسفند 1388, 18:15 عصر
سلام
از همه دوستان که در این مورد نظر دادن ممنون هستم
همروندی کلا با پارالل فرق داره !

من دنبال این کتاب هستم

Professional Parallel Programming With
C#‎‎‎
by Gaston C. Hillar

یا
Pro .NET 4.0 Parallel Programming
in
C#‎‎‎
هر چی گشتم پیدا نکردم :گریه:
با هر کتاب که در این مورد هست :قلب:

باز از دوستان تشکر میکنم

Warrior
یک شنبه 02 اسفند 1388, 20:28 عصر
یکی از دوستان یک مثال کاملا عملی در مورد Parallel Programming می زند؟

یکی از کاربرد های Parallel Programming یا Concurrency Programming را هم لطف کنید و بگویید.

ممنونم

r00tkit
یک شنبه 02 اسفند 1388, 22:09 عصر
Professional Parallel Programming With
C#????
by Gaston C. Hillar

??
Pro .NET 4.0 Parallel Programming
in
C#????
این کتاب ها Pre-order هستن


کار برد parallel programming اینه که برنامه نویس می تونه از همه قدرت cpu استفاده کنه :

زمانی قدرت پردازنده ها روز به روز افزایش پیدا می کرد اما این روز ها دیگه شرکت های سازنده ی cpu نمی تونن قدرت یه cpu رو ا
فزایش بدنند به همین خاطر دیگه سازندگان به جای افزایش قدرت cpu تعداد ان رو زیاد می کنن(تعداد هسته یا پردازنده )

و این جاست که نقش برنامه نویس پر رنگ تر شده تا بتواند برای افزایش سرعت برنامه ها هم زمان از همه ی هسته ها (پردازنده ها) استفاده کند وبه همین دلیل است که امروز بحث اکثر مجالس برنامه نویسی شده function programming , Erlang,fsharp

فکر کنم دیگه اهمیت parallel programming برای همه دنیا معلوم هستش

برای مثال و جزئیات می تونی به MSDN سر بزنی

angel_10035
دوشنبه 03 اسفند 1388, 22:50 عصر
[QUOTE=geek1982;915474]این کتاب ها Pre-order هستن
ا
در این مورد دوستان اگر کتابی سراغ دارن ممنون میشم به من هم اطلاع بدن