مولتی تریدینگ در مولتی پراسسینگ

پرسیده شده
فعالیت 932 روز پیش
دیده شده 378 بار
0

سلام

امکان اجرای مولتی تریدینگ در مود مولتی پراسسینگ وجود دارد؟

فایل پیوست

Amin Deimkar
Amin Deimkar

20 مهر 00

1
حذف شده

سلااااااااااااااااام امین جان

روزت بخیر

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

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

و اینکه باید از مولتی ترد و مولتی پراسس در جای درستش استفاده کنیم که برامون بهینگی زمانی داشته باشه. 

معمولا از مولتی ترد زمانی استفاده میکنیم که داریم کارهای مربوط به I/O میکنیم مثل درخواست گرفتن یه صفحه وب یا نوشتن تو فایل و دیتابیس و اینطور موارد.

و از مولتی پراسس زمانی استفاده میکنیم که پردازش های سنگین یا زیاد داریم.

و اینکه تو مولتی ترد حافظه مشترک هست و GIL وجود داره. در واقع چند ترد دارن داخل یه پراسس با حافظه مشترک کار میکنن.

و داخل مولتی پراسس هر پراسس حافظه خودش رو داره و میتونیم توش چند تا ترد ایجاد کنیم.

نکته ی دیگه ای که هست اینه که برای ایجاد مولتی ترد توی تعدادش محدودیت کمتری داریم. اما تو مولتی پراسس یه حداکثر تعدادی وجود داره، و خوب نیست بیشتر از اون حداکثر پراسس بسازیم. تعدادش رو دقیق مطمئن نیستم ولی فک میکنم فرمولش اینه:

حداکثر تعداد پراسس = تعداد هسته های CPU ضربدر ۲

برای بدست آوردن تعداد پراسس تو لینوکس از دستور زیر استفاده میکنیم:

nproc

اگر مولتی پراسس همراه با مولتی ترد رو پیاده سازی کردی،‌ لطفا تجربه ات رو اینجا بگو و اگر امکانش بود کدت رو هم بذار.

 

شاد و موفق باشی :)

فایل پیوست

محمدعلی رضا

توسط

محمدعلی رضا

21 مهر 00

جلسه پیاده‌سازی Concurrency با استفاده از multiprocessing - قسمت دوم