2009/11/10

MATLAB و پردازنده‌های چند هسته‌ای

خیلی بد است که یک پردازندهٔ ۴ هسته‌ای (QUAD Core CPU) داشته باشی، کلی محاسبات سنگین هم در MATLAB یا هر جای دیگر داشته باشی، آن وقت فقط یک هسته مشغول باشد و باقی هسته‌‌ها از بیکاری چرت بزنند.
ظاهراً نسخه‌های جدید MATLAB امکانات موازی سازی، محاسبات توزیع‌شده و چندنخی (Multithreading) خوبی دارند ولی در نسخه MATLAB 7.3 R2006b که من استفاده می‌کنم این امکانات به صورت کامل وجود ندارد و امکان استفاده از توان کامل سی‌پی‌یوهای چندهسته‌ای وجود ندارد. با این حال برای انجام یک سری از عملیات جبرخطی امکاناتی وجود دارد که برای استفاده از آنها باید تنظیماتی را انجام داد. فرض کنید چهار هسته داریم، تنظیمات زیر را انجام دهید:
1. Right click on “My Computer” and select “Properties”.
2. Click on the “Advanced” tab.
3. Click on the “Environment Variables” button.
4. Create or edit the following "System variables":
Variable Value
---------- ----------
BLAS_VERSION mkl.dll
OMP_NUM_THREADS 4


برای اطلاعات بیشتر و نحوه استفاده در لینوکس اینجـــا را ببینید. البته ظاهراً Mathworks ایران را تحریم کرده است و باید از فیلترشکن استفاده نمایید.

نتیجه اجرا جالب بود. من کد زیر را که یک تجزیه QR است، در هر دو حالت (با و بدون انجام تنظیمات فوق) روی سی‌پی‌یوی Intel® Core™2 Quad Processor Q8200 اجرا کردم:

tic;a=magic(2001);qr(a); toc

بدون تنظیمات فوق ۳.۲ ثانیه زمان می‌برد و پس از تنظیم فوق ۱.۸۶ ثانیه به طول انجامید و هر ۴ هسته فعال شدند. یعنی کاهش بیشتر از ۴۰ درصدی زمان اجرا. خیلی خوب بود.

جابجایی Repository مربوط به SVN

مخزن مربوط به Visual SVN را که به همراه TortoiseSVN برای کنترل ورژن استفاده می‌کنم، از یک دستگاه به دستگاه دیگری منتقل نموده بودم. فایلها قابل استفاده نبودند، چرا که نام سرور عوض شده بود. برای هر مورد، فایل entries را که در شاخه .svn قرار دارد، از حالت فقط خواندنی درآوردم و نام سرور را اصلاح کردم؛ مشکل برطرف شد. اگر نام سرور در هر دودستگاه یکی می‌بود مشکلی بوجود نمی‌آمد. این هم موقعی اتفاق می‌افتد که نام دو دستگاه یکی باشد یا یک نام یکسان (مثلا localhost) به عنوان نام سرور در تنظیمات Visual SVN در هر دو دستگاه درنظرگرفته شود.

2009/10/29

افزونهٔ پیوست برای جومفا

اگر بدنیال افزونه‌ای مناسب برای الحاق فایل به مطالب سیستم جوملای فارسی خود می‌گردید، می‌توانید از این افزونه که آقای جاناتان کامرون آنرا آماده نموده و آقای حسین مرادقلی آنرا به فارسی ترجمه کرده‌اند استفاده نمایید.
اگر از جومفا استفاده می‌کنید، می‌توانید از این ترجمه آن که من آن را بر پایه کار آقای مرادقلی برای جومفا آماده کرده‌ام استفاده کنید.
این افزونه از مرکز افزونه‌های جومفا نیز قابل دسترسی است.

نقاط کلیدی SIFT

در ابتدا ولادت با سعادت امام رضا (علیه‌السلام) را تبریک عرض می‌کنم.
نقاط کلیدی (SIFT(Scale Invariant Feature Transform که توسط پروفسور David Lowe ارائه شده‌اند کاربردهای متنوعی در پردازش تصویر پیدا کرده‌اند. برای استخراج و تطابق این ویژگیها برنامه‌ای توسط پروفسور Lowe آماده شده است که بسیار خوب کار می‌کند. با این حال من برای بررسی یک موضوع نیاز به یک پیاده‌سازی دیگر از آن داشتم که این سایت را دیدم.
برای اجرای برنامه‌های آن در MATLAB باید آنها را با یک کامپایلر C کامپایل می‌کردم که هنوز هیچ کامپایلری روی ویندوز تازه نصب شده‌ام ندارم. LCC مربوط به MATLAB برای برخی از فایلها خطا می‌داد.
برای نصب کامپایلر C، از CodeBlocks,MinGW که در کافه گنو/لینوکس می‌ةوانید لینک‌هایش را بیابید استفاده کردم. توصیه می‌کنم که این برنامه‌ها را در مسیری نصب کنید که فاصله در نام آن نباشد.
برای تنظیم MEX در MATLAB از GNUMex استفاده کردم که در این سایت معرفی شده و نحوهٔ استفاده از آن هم گفته شده است.
فایلهای C مربوطه را کامپایل کردم و الحمدلله راه افتاد. امیدوارم مشکل اولیهٔ من با این برنامه SIFT برطرف شود.

2009/10/06

سنجش سرعت دانلود و آپلود اینترنت خود

با استفاده از این سایت به راحتی می‌توانید سرعت دانلود و آپلود اینترنت خود را معین کنید.

2009/07/27

صفحه کلید فارسی

من در حال حاضر از صفحه کلید فارسی استاندارد استفاده می‌کنم ولی مشکلی که با آن دارم آن است که برای زدن نیم فاصله باید از Shift+B‌استفاده کنم در حالیکه قبلاً از Shift+Blank استفاده می‌کردم. در صفحه کلید فارسی جدیدی که توسط آقای اخگری آماده شده است این مشکل حل شده است. آنرا می‌توانید از اینجا بارگیری نمایید. در این صفحه کلید با استفاده از Shift+Blank هم می‌توان نیم‌فاصله را داشت. شایان ذکر است که برای نصب آن اگر از قبل Persian Experimental Keyboard را دارید باید ابتدا آنرا حذف نموده، سیستم را ری‌استارت کرده و اقدام به نصب این صفحه کلید نمایید.

2009/07/23

نسخه جدید زی‌پرشین

آخرین نسخه زی‌پرشین (۱.۰.۲) که مدتی پیش به CTAN داده شده بود امروز در توزیعهای میک‌تک هم قرار گرفت. با بروزرسانی بسته‌های bidi و xepersian آخرین نسخه را داشته باشید.