اطلاعیه

Collapse
No announcement yet.

درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

    سلام دوستان.

    میخواستم پیشنهادی برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین بدهید.

    پردازش های مطلوب :
    پردازش صدا و تصویر ( هر دو به صورت Real Time و با هم ) و چند محاسبه کوچک.

    در صورت امکان دلیل رو هم قید بفرمایید. :nerd:

    #2
    پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

    خوب DSP و Real-time و محاسبات سنگین
    ولی مشخص نکردین میخواین فقط نرم افزار باشه (FPGA یا DSP Processor مد نظر نیست؟)

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

    نکتهٔآ‌ دومی که به نظرم میرسه اینه که برای رسیدن به نیازهای پروژه حتما باید از روش چند زبانی استفاده کرد و موتور اون هم با توجه به نیازهاتون قالبا C خواهد بود اما توصیهٔآ‌ من با توجه به اینکه روی NASA تاکید داریم :mrgreen: استفاده از
    C/C++ & Python & Fortran
    به خصوص SciPy رو یه چکی بکنین با این خیلی از کارهای علمی رو میتونین انجام بدین
    من خودم تجربهٔ درخوری رو با SciPy ندارم ولی فکر میکنم چیزی هست که میتونین ازش استفاده کنین و ازون رویکرد چند زبانی به نحو احسن سود ببرین (چیز بهتری به ذهنم نمیرسه oo

    ضمنا تا اوجائی که من اطلاع دارم ناسا به طور وسیعی از فورترن و پایتون توی پروژه هاش استفاده میکنه

    دیدگاه


      #3
      پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

      فقط نرم افزار.

      http://www.pylearn.com/fa/forum

      دیدگاه


        #4
        پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

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

        موضوع دیگر اهمیت موازی سازی و استفاده از قابلیت پردازشی پردازنده است. اکنون اکثر پردازندهآ‌ها ۲ یا ۴ هسته دارند شما اگر بتوانید قسمتآ‌های زمانآ‌بر کدتان را موازی کنید و روی دو هسته اجرا کنید در مجموع سرعت اجرا بیشتر خواهد شد (علاوه بر این هزاران روش بهبود هم وجود دارد که کد را سریعآ‌تر میآ‌کند مثلا کد را با توجه به cache سیستم جوری کامپایل کرد که سریعآ‌تر اجرا شود). قسمتآ‌های پردازشی هم مانند قسمتآ‌های MMX و یا حتی کارت گرافیکی هم ممکن است بتواند کد شما سریعآ‌تر کند.

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

        دیدگاه


          #5
          پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

          نوشته اصلی توسط NASA_DE
          فقط نرم افزار.

          http://www.pylearn.com/fa/forum

          منظورتون رو از نرم افزار نگرفتم این SciPy همون پایتون هست در اصل نرم افزار خاصی یا IDE چیزی نیست....
          همونطوری که گفتم به نظرم MATLAB نمیتونه کمکتون کنه البته با توجه به اینکه real-time هست و نیاز به سرعت دارین.....
          اینترفیس نیست فقط میتونه تا حدی (که نمیدونم چقدر کم یا زیاد) اون نبود MATLAB رو جبران میکنه
          مسلم هست وقتی که C مطرح میشه قراره پروسه های بحرانی طراحیتون رو هدف بگیره و وقتی پایتون مطرح میشه قرار هست به کل روند کمک کنه یعنی به کلیت پروسهٔ طراحی مثلا اینترفیس کاری که SciPy میتونه واسه تون انجام بده پردازش آرایه ها و ماتریسهای بزرگی است (که MATLAB توش مشهوره) الگوریتم ها و روتینهائی که به خوبی بهینه شدن از طرفی کل پایتون زبان ساده و قدرتمندی هست و واسه همین محبوب هست (سادگی و قدرتمندی) اینکه یه اسکریپت هست و مفسری در کل قضیه تغییری ایجاد نمیکنه پایتون قراره که کارهای غیر بحرانی برنامه تون رو اجرا کنه
          البته جاوا هم هست ولی فکر نمیکنم اونقدر خوب باشه (در مقایسه با پایتون)
          تصور کار بلادرنگ هم با ویندوز و کد زدن در پلتفرمش یه کم مشکله واسهآ‌م شاید بتونین توی دات نت چیزائی پیدا کنین ولی به طور کل فکر نمیکنم بتونین اون بهره ای که از لینوکس میگیرن ازون بگیرین البته شما در صورت استفاده از لینوکس باید از کرنل بلادرنگ استفاده کنید (کرنلی که مخصوص اینکار طراحی شده)
          فکر نمیکنم MATLAB و LabView و .NET بتونه اون چیزی رو که میخواین فراهم کنه
          یعنی اون ترکیبی که پیشنهاد دادم بیشتر ناظر به این مطلبی که فرموده بودین یعنی محاسبات سنگین و DSP واسه ایندوتا SciPy به این خاطر مطرح میشه که مثلا شمامیتونین با یه تابع یه فایل صوتی رو به یه آرایه تبدیل کنید و اونو بیارین توی SciPy (شایدم NumPy) و پردازش رو روش انجام بدین و دوباره با همون تابع به شکل صوتی درش بیارین همینطور پردازشهای دیگه ضمن اینکه میتونه از توانائی های C/C++ و فرترن در بحثهای DSP استفاده بشه
          بسیاری از مسائل مربوط به real-time هم در پشت یک کرنل بلادرنگ لینوکس مخفی میشه

          آقای NASA_DE اگه ممکنه اطلاعات بیشتری هم راجع به پروژه تون بدین (بیشتر شرایطش منظورم هست تا اهدافش) مثلا آیا شما میخواین این کار رو سریع تحویل بدین و وقت سروکله زدن با پایتون رو بعنوان مثال ندارین و یا ...
          ینکه این مسئلهٔ بلادرنگ بودن در چه حدی هست؟ سخت افزار چی؟ و کلی چیزای دیگه؟
          ضمنا استفاده از پایتون باعث میشه که بتونین طراحی داشته باشین که به راحتی روی پلتفرم های مختلف پورت بشه (مثلا این مسئله تا چه حد مهمه؟ و مسائل دیگه)
          فعلا هنوز میگم که C/C++ بعلاوه امکاناتی که پایتون میده به خصوص SciPy و ...
          البته میتونین از جاوا هم استفاده کنید که من آشنائی ندارم میتونه بهتر از این ترکیب باشه
          استفادهٔ خالص از C هم شاید بشه ولی به شدت درگیر میشین و برای تسکهائی که توی برنامه که لازم نیست بیش از اندازه درگیر میشین
          به نظر من MATLAB و .NET و LabView (توی برخی از اهداف طرح میشه ازش استفاده کرد) نمیتونن کمکتون کنن البته بستگی به شدت اون چیزائی که گفتین هم داره...

          دیدگاه


            #6
            پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

            NASA جان لطفا بیشتر در مورد پروژه تون توضیح بدید (البته اگر سری نیست :biggrin: )
            There is nothing so practical as a good theory. — Kurt Lewin, 1951

            دیدگاه


              #7
              پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

              دوستان عزیز از راهنمایی های شما پیشاپیش متشکرم.

              تیم ما برای تحویل این پروژه 10 ماه زمان در اختیار داره. هدف بنده از ایجاد این تاپیک شناسایی محیط قدرتمند
              جهت انجام کارهایی که در ذیل عرض خواهم کرد است.
              برنامه ای که قادر به :

              شناسایی و تفکیک ارگان های بدن یک انسان باشد

              شناسایی 12 رنگ مختلف باشد

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

              تمامی پورت های کامپیوتری را تحت کنترل داشته باشد

              تمامی عرایض بنده را بتواند به صورت Real Time انجام دهد.

              امنیت مناسبی به هنگام شبکه کردن داشته باشد

              این برنامه توسط یک Interface یک Atmega64 را فرماندهی خواهد کرد

              دیدگاه


                #8
                پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

                خوب به نظرم قضیه بلادرنگ اونقدرها هم سخت نیست (سخت منظورم حساسیتش هست) البته مطمئن نیستم. چون فکر میکنم شما بلادرنگ رو فقط در راستای اجرای فرامین صوتی میخواین (امیدوارم درست گرفته باشم) اینجوری که کلا real-time هم میتونه تلقی نشه
                راجع به امنیت به ویندوز اطمینانی نیست تحت شبکه ولی میشه تقویتش کرد ولی ازون ور شاید بتونین با MATLAB و حتی LabView کارهای اصلی رو انجام بدین (نمیدونم متلب و لب ویو تا چه حدی باهم میتونن ارتباط برقرار کنند)
                اما پیشنهاد من در صورتی که مسئلهٔ real-time وجود داشته باشه (نه به این شکلی که از پست بالا برداشت کردم) و مسئلهٔ سرعت هم حیاتی باشه همون ترکیب C/C++ با پایتون هست و همون چیزائی که گفته شد ضمن اینکه درسته که پایتون اسکریپت هست و مفسر داره ولی در مسئلهٔ سرعت تا حد زیادی به سی نزدیک هست و واسه همین ترکیب ایندوتا پیشنهاد میشه
                اما اگر اینجوری هزینهٔ ساخت بالا میره و وقت کم میاد مسئله دیگه فرق میکنه

                دیدگاه


                  #9
                  پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

                  با این توضیحاتی که شما و دوست عزیزمون manian در تاپیک :

                  http://www.eca.ir/forum2/index.php?topic=25424.0;topicseen

                  فرمودین بنده الان Fedora 10 رو روی یک هارد دیگه نصب دارم. :nerd:

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

                  نصب مودم Generic 56k HCF Zolltrix هست. و ترس از ناتوانی نصب Access Point در لینوکس.

                  یادمه سال گذشته یک شرکت خارجی برای پردازش تصویر از C++ استفاده کرده بود.

                  با توجه به فرمایشات شما و دوست عزیزمون manian فکر کنم C++ بهترین گزینه برای این کار باشه.

                  اگر میتونستم این مودم رو نصب کنم خیلی راحت میشدم. :sad:

                  از بابت راهنمایی ها و جوابهای منطقی و سریع شما متشکرم.

                  دیدگاه


                    #10
                    پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

                    این مودم WinModem هست یعنی درایورش در انحصار مایکروسافت هست (چون مودم کامل نیست و نصف کارشو سیستم عامل انجام میده)
                    درایور هک شده ش هم که با مهندسی معکوس توسط هکرها بدست اومده محدود به ۱۴.۴ کیلو هست توی سایت linmodem هم میتونین پیداش کنین شنیدم شرکت Dell هم یه درایور ارائه کرده یا خود زولتریکس ولی مطمئن نیستم واسه HSF بود یا HCF من قبلا از یه مودم اکسترنال دایال پ استفاده کردم که درایور هم نمیخواست ولی این وین مودمها مشکل دارن..
                    راجع به Access Point من دسترسی نداشتم یعنی تجربه ای با وایرلس ندشتم ولی لینوکس توی شبکه ابزارهای بیشتر رو میشناسه حالا در این مورد خاص میتونین سوالاتون رو توی انجمنی مثل تکنوتاکس یا کانالهای IRC یا انجمن ubuntu.ir بپرسین سرچ کنین حتما مطالبی پیدا میکنین

                    دیدگاه


                      #11
                      پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

                      البته درایور اون مودم به شکل پولی وجود داره قبلا ۱۸ دلار بود حالا نمیدونم........ولی من عوضش یه مودم اکسترنال سریال خریدم

                      دیدگاه


                        #12
                        پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

                        خوب. آقا ما جدی تر شدیم جهت استفاده از لینوکس. :nerd:

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

                        برای این که موضوع تاپیک عوض نشه در صورت امکان لطف کرده و به تاپیک زیر . :nerd:

                        http://www.eca.ir/forum2/index.php?topic=27778.new#new

                        دیدگاه


                          #13
                          پاسخ : درخواست پیشنهاد برای انتخاب زبان و محیط برنامه برای پردازش و محاسبات سنگین

                          سلام،
                          به نظر من بهتره از VC++ استفاده کنید. البته اگر بخواهید از لینوکس استفاده کنید امکان استفاده از کلاسهای MFC رو نخواهید داشت و یه مقدار کارتون مشکل میشه.
                          در ضمن LabView رو هم فراموش نکنید.
                          There is nothing so practical as a good theory. — Kurt Lewin, 1951

                          دیدگاه

                          لطفا صبر کنید...
                          X