PDA

View Full Version : ضرب ماتریس ها توسط Thread ها



aftabgardoon
جمعه 23 مهر 1389, 19:10 عصر
سلام به همگی


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


ولی نمیخوام این برنامه رو به صورت عادی بنویسم بلکه باید از Thread ها استفاده کنم. یعنی مثلا عمل ضرب سطر اول از ماتریس اول ، در ستون های ماتریس دوم رو به یک Thread بدم و عمل ضرب سطر دوم از ماتریس اول در ستون های ماتریس دوم رو به یک Thread دیگه بدم و به همین ترتیب از Thread های مختلفی استفاده کنم....


به عبارتی باید برنامه به صورت موازی اجرا بشه.


یه کم کار کردن با Thread ها رو خوندم ولی نمیدونم این برنامه رو چطور باید بنویسم.


اگر دوستان کمک کنند و راهنمایی کنند واقعا ممنون میشم.

ali_autumnal
جمعه 23 مهر 1389, 23:11 عصر
سلام
سوال فوقالعاده ای هست.

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

خیلی خوشم اومد.

بشین بنویس حالشو ببر.

اگه وقت کردم خودمم دوست دارم این سوال رو حل کنم.

البته سخت نیست اما وقت میبره.
موفق باشید
علی پاییزی

MSN_Issue
شنبه 24 مهر 1389, 00:34 صبح
اگه صرف استفاده از ترد برات مهمه که هیچ(یعنی می تونی جواب رو از بقیه ی دوستان بگیری!:بامزه:)
اما اگه میخوای فقط برنامه موازی کار کنه می تونی به تعداد سطر های ماتریس اولت بکگراند ورکر (BackgroundWorker) نیو (New) کنی ... و عمل ضرب رو توی متد DoWork شون پیاده سازی کنی

aftabgardoon
شنبه 24 مهر 1389, 00:49 صبح
در اصل من باید ضرب ماتریس ها رو یه بار با Thread بنویسم یه بار هم با استفاده از TPL بنویسم.
بعد زمان اجرای این دو برنامه رو با هم مقایسه کنم.
لطفا اگر می تونید در این مورد راهنمایی کنید.

aftabgardoon
جمعه 08 بهمن 1389, 09:58 صبح
سلام دوستان
من خودم این برنامه رو نوشتم می تونید از لینک زیر استفاده کنید.

http://programming.manekhodam.ir/ftopicp-806.html#806

---------------------------------------------------------------------------------
برای استفاده راحت تر از این کد، برنامه رو در همین پست ضمیمه کردم.

موفق باشید

sds1920
جمعه 08 بهمن 1389, 16:45 عصر
یه نکته ای رو باید بهتون یاد آور بشم.اگه هدف شما از این کار افزایش سرعت هست باید بگم
که باید بیش از یک پردازنده داشته باشید در غیر این صورت تفاوت چندانی نخواهد داشت.

Sir.V65j
جمعه 20 خرداد 1390, 10:39 صبح
توی VS2010


using System.Threading;
using System.Threading.Tasks;



و بعد استفاده از
Parallel.For()

آسان ترین کاری که میشه انجام داد!

این مطلب رو اینجا نوشتم تا دوستانی که توی جست و جو به این صفحه هدایت میشن اصل مطلب رو داشته باشن.

aftabgardoon
جمعه 14 مرداد 1390, 19:23 عصر
سلام

به این لینک هم یه نگاهی بکنید. به نظرم مطالب خوبی داره

هم روش کار با Threadpool رو توضیح داده هم روش کار با TPL

http://msdn.microsoft.com/en-us/magazine/cc163340.aspx

raza_sophanirad
سه شنبه 30 اردیبهشت 1393, 00:39 صبح
سلام دوستان
من خودم این برنامه رو نوشتم می تونید از لینک زیر استفاده کنید.

http://programming.manekhodam.ir/ftopicp-806.html#806

---------------------------------------------------------------------------------
برای استفاده راحت تر از این کد، برنامه رو در همین پست ضمیمه کردم.

موفق باشید
سلام.ممنون بابت برنامتون.میئشه کمیدرباره برنامه ای که نوشتیدتوضیح بدید