PDA

View Full Version : سوال: امکان برنامه نویسی برای سی پی یو های چند هسته ای در دلفی



Mehdi Asgari
یک شنبه 05 مهر 1388, 15:57 عصر
سلام
آیا دلفی امکاناتی (کتابخونه) برای Parallel Programming (Concurrency) داره ؟ (مثلا در Visual Studio 2010/.NET 4.0 کتابخونه ای به نام PFX (شامل TPL و PLINQ و ...) به دات نت اضافه شده که توسط اون میشه راحت تر از قبل برای سی پی یو های multi-core برنامه نوشت.) آیا در نسخۀ جدید دلفی هم همچین چیزی وجود داره ؟ یا قراره در آینده همچین چیزی اضافه بشه ؟
(منظورم برخورداری از فقط Thread نیست. بلکه فریم ورک منظورمه. مثل PFX (دات نت) و TBB یا تغییرات زبانی مثل Cilk++ ... )
ممنون

tdkhakpur
یک شنبه 05 مهر 1388, 16:35 عصر
سلام
ببینید کار سخت افزار از برنامه نویسی سواست به این شکل نیست که شما برای اینکه برنامه بنویسید که مثلا بین دو cpu که برای یک مادربرد مشترکا کار میکند عملیان انجام بدهد بلکه این سیستم عامل هست که کنترل عملیات را انجام میدهد نه برنامه نویس .
البته کامپایلر ساید امکاناتی در راستای استفاده از درگاهها و باسها بدهد ولی تا اونجایی که من اصلاع دارم برنامه نویس نمی تواند کارش را بین cpu ها تقسیم کند و یا مثلا بخواهد فقط cpu شماره 1 برنامه را اجرا کند....
البته این امر بعید نیست ولی اگر امکانش هم وجود داشته باشد باید هر برنامه ای که تا به اینجا ارائه شده بهش لقب برنامه های کلنگی را دارد تا از نوع ساخته شود.

vcldeveloper
یک شنبه 05 مهر 1388, 17:31 عصر
آیا دلفی امکاناتی (کتابخونه) برای Parallel Programming (Concurrency) داره ؟ (مثلا در Visual Studio 2010/.NET 4.0 کتابخونه ای به نام PFX (شامل TPL و PLINQ و ...) به دات نت اضافه شده که توسط اون میشه راحت تر از قبل برای سی پی یو های multi-core برنامه نوشت.) آیا در نسخۀ جدید دلفی هم همچین چیزی وجود داره ؟خودِ دلفی همچین کتابخانه ایی نداره، ولی دیدم بعضی شرکت ها کتابخانه های تجاری تجاری برای این منظور برای دلفی تولید کردند، علاوه بر اون، کاربران فعال در حوزه دلفی هم کتابخانه هایی برای پیاده سازی بعضی از اینگونه ویژگی ها، نه همه آنها، بطور رایگان عرضه کردند، مثلا OmniThreadLibrary (http://otl.17slon.com/)یکی از اونها هست، یا فرضا Marco Cantu در مثال های کتاب Delphi 2009 Handbook یک Parallel For ارائه کرده بود.



یا قراره در آینده همچین چیزی اضافه بشه ؟بله، Allen Bauer در این زمینه چندین پست در وبلاگش (http://blogs.embarcadero.com/abauer/2008/02/22/38857) زده، و طرح هایی را مطرح کرده. در RoadMap دلفی هم به این مورد اشاره شده. ظاهرا چیزهایی هم آماده شده، ولی چون هنوز به حدی نرسیده که بطور رسمی عرضه بشه، از انتشارش خودداری کردند. خودم فکر می کنم که احتمالا در نسخه آینده دلفی این قابلیت اضافه بشه.

الان تیم دلفی به شدت درگیر نوسازی کامپایلر دلفی، و ارائه یک کامپایلر Cross-platform برای کد Native هست. سه پلت فرم Windows, Linux, Mac را فعلا هدف قرار دادند. از نظر پشتیبانی از 64-بیتی هم به شدت تحت فشار هستند. کاربران رای بیشتری به Cross-platform دادند، ولی به شدت دنبال این هستند که در نسخه بعدی دلفی به نوعی 64-بیتی هم گنجانده بشه، چون به نوعی 64-بیتی هم یک پلت فرم محسوب میشه، و میشه همزمان با ایجاد تغییرات اساسی در کامپایلر، این را هم اضافه کرد. از طرف دیگه، به شدت از طرف کاربران تحت فشار هستند که دلفی خیلی گرون هست (راست هم میگن)، و الان بحث های زیادی از طرف کاربران مطرح میشه که دلفی باید حداقل یک نسخه با قیمت زیر 100 دلار، یا حتی یک نسخه محدود شده رایگان داشته باشه، تا کاربران جدید راغب به استفاده از آن بشند.

با وجود این بحث ها، نمیدونم تیم توسعه دلفی چقدر موفق میشه قابلیت های مختلف را درنسخه نهایی عرضه کنه، چون اینها شیوه کارشون در حال حاضر توجه زیاد به فیدبک کاربران هست. اگر کاربران یک قابلیت خاص را به میزان زیادی درخواست بکنند، احتمال داره سایر قابلیت ها به تاخیر بیافتند تا اون قابلیت خاص آماده بشه. مثل یونیکد که قرار بود اول روی کامپایلر 64-بیتی کار بشه، ولی وقتی کاربران رای بیشتری به یونیکد در VCL دادند، دلفی 2009 یونیکد را عرضه کرد، و 64-بیتی به تاخیر افتاد. این بار کاربران روی Cross-platform اصرار کردند، 64-بیتی باز هم تاخیر افتاد، ولی الان میگن Cross-platform و 64-بیتی را با هم میخوایم!

AliReza Vafakhah
یک شنبه 05 مهر 1388, 23:30 عصر
آقای کشاورز آیا قرار پلت فرم های Windows, Linux, Mac روی دلفی پیاده سازی بشن ؟ البته شما هم عرض کردید Native یعنی برنامه در دلفی در 3 نوع فایل کمپابل میشه ؟

این ها مربوط به دلفی پریسم که نیست ؟

با تشکر

vcldeveloper
دوشنبه 06 مهر 1388, 06:02 صبح
آقای کشاورز آیا قرار پلت فرم های Windows, Linux, Mac روی دلفی پیاده سازی بشن ؟ البته شما هم عرض کردید Native یعنی برنامه در دلفی در 3 نوع فایل کمپابل میشه ؟پلت فرم که روی دلفی پیاده سازی نمیشه!

روال کار به این صورت هست که شما یک کد در دلفی (تحت ویندوز) می نویسید، و می تونید همین کد را برای سیستم عامل های مختلف (ویندوز، لینوکس، مک) کامپایل کنید. جزئیات کار هنوز اعلام نشده.


این ها مربوط به دلفی پریسم که نیست ؟
نه، Delphi Prism تحت دات نت هست، اینجا ما داریم از Native Code صحبت می کنیم.

vcldeveloper
دوشنبه 06 مهر 1388, 12:05 عصر
این هم بسته تجاریی که گفته بودم:
Jibu for Delphi (http://www.axon7.com/flx/products/jibu_for_delphi/)

پی نوشت: اصلاح میکنم، Jibu قبلا تجاری بود، ظاهرا الان رایگانش کردند! البته فقط دلفی 2007 را پشتیبانی میکنه، ولی سورس کدش موجود هست، و میشه برای سایر نسخه های دلفی آن را کامپایل کرد.

vcldeveloper
دوشنبه 06 مهر 1388, 12:59 عصر
الان تست کردم...Jibu روی دلفی 2009 به راحتی کامپایل میشه. یکی از Demoهای آن را هم بدون مشکل کامپایل و اجرا کردم. علاوه بر Documentation ایی که در داخل فایل ZIP برای دانلود قرار داره، یک مقاله 4 قسمتی با نام An Introduction to Jibu for Delphi هم در سایت شان موجود هست، که توضیحات خوبی درباره چگونگی کار با Jibu ارائه میکنه.

AliReza Vafakhah
دوشنبه 06 مهر 1388, 21:21 عصر
پلت فرم که روی دلفی پیاده سازی نمیشه!


این که درسته پلت فرم کجا ، کامپابلر کجا اشتباه منظورم را عرض مردم

از این تعجب کردم که قرار دلفی در این پلت فرم ها کامپایلر خود را تغییر دهد !

خوب یه جورایی هنوز هم متعجبم حالا توویندوز که درسته از API ها برای ساخت برنامه استفاده می کن ولی در Mac دیگه چه چوری ؟

FiACKER
دوشنبه 06 مهر 1388, 22:18 عصر
خوب یه جورایی هنوز هم متعجبم حالا توویندوز که درسته از API ها برای ساخت برنامه استفاده می کن ولی در Mac دیگه چه چوری ؟
هر سيستم عامل Api مخصوص به خودش رو داره.
و فكر كنم خوده دلفي در موقع كمپايل توابع رو به توابع مورد نظره اون سيستم عامل تغيير مي ده.
بعضي از توابع هم كه فقط وابسته به يه سيستم عامل هستند به كاربر پيغام داده مي شوند كه اين تابع در سيستم عامل هاي ديگر كار نخواهد كرد يا پشتيباني نمي شود و كده ديگري بنويسيد