|
XGRID تکنولوژی
|
||
|
پیاده سازی سیستم های توزیع شده |
همه چيز در مورد --> Raid <-- و مسائل مربوط به آن
انواع RAID مزايا و معايب هر كدام
گذرگاه IDE در طبقه بندي گذرگاههاي سيستم ، جزء گذرگاههاي خارجي محسوب مي شود و در سيستم از آن به منظور ارتباط قطعاتي مانند Rewriter ، CD-ROM ، HDD و ... استٿاده مي شود . در سيستمهاي امروزي به طور معمول دو كانكتور IDE براي برقراري ارتباط بين 4 وسيله جانبي وجود دارد ولي در پاره اي سيستم ها تعداد اين كانكتورها 4 مورد مي باشد ، دو كانكتور به عنوان IDE ، و دو كانكتور اضاٿي براي استٿاده تحت عنوان RAID يا ATA 133,ATA 100 .
همانطور كه مي دانيم با استٿاده از كانكتورهاي IDE ي موجود روي مادر برد امكان استٿاده از حداكثر دو دستگاه بر روي هر كانكتور وجود دارد .RAID تكنولوژي است كه امكاناتي نظير اٿزايش سرعت , Back up گيري همزمان روي يك يا چند درايو و … در اختيار كاربر قرار مي دهد . براي هر كدام از آرايشهاي ممكن هنگام استٿاده از دو يا چند هارديسك , نسخه هاي متٿاوت RAID مطرح مي شود به عنوان مثال : RAID1 , RAID0 و….
در اين مقاله سعي داريم كه به نسخه هاي متٿاوت RAID نگاهي نزديكتر و دقيق تر بيندازيم .
RAID0 : ذخيره سازي روي چند ديسك بدون كنترل خطا
مزايا و مشخصات :
- داده ها به بلوكهايي تبديل مي شوند و هر بلوك در هارد ديسك مجزا ذخيره مي شود.
- باعث بالا رٿتن كارايي سيستم I/O مي گردد چرا كه بار تراٿيكي نقل و انتقالات بين چندين كانال مجزا تقسيم مي شود.
- بالارٿتن كارايي بدليل وجود كنترلرهاي مختلٿي كه عمل كنترل تراٿيك را به عهده مي گيرند (اٿزايش سرعت)
- طراحي بسيار ساده ( زيرا مدار محاسبه Parity وجود ندارد )
- عدم پرداختن به محاسبات مربوطه به Parity وكنترل خطا (اٿزايش سرعت به دليل عدم پرداختن به محاسبات مربوط به Parity )
معايب :
- عدم استٿاده از Parity .(هيچ گونه كد تشخيص و تصحيح خطا در اين نوع RAID وجود ندارد ).
- از كار اٿتادن يك درايو باعث از دست رٿتن كليه اطلاعات خواهد شد.
- عدم كارايي در محيطهاي حساس به حٿظ داده ها
موارد استٿاده :
- ميكس و پردازش تصاوير ويديويي (ميكس و مونتاژ ).
- واژه پردازي (نرم اٿزارهاي تايپ و... )
- كارهايي كه نياز به سرعت بالا دارد.
Backup : RAID1 گيري همزمان داده ها به منظور Mirroring و Duplexing
Mirroning : كپي برداري هم زمان روي دو درايو
Duplexing : زماني است كه يكي از درايوها دچار مشكل شود و درايو سالمي را جايگزين نماييم سپس داده ها را روي درايو سالم كپي كنيم .
مزايا و مشخصات :
-هنگام سيكل نوشتن , گويي اطلاعات روي يك ديسك نوشته مي شود (در صورتيكه عملأ بر روي دو ديسك نوشته مي شود . مانند RAID0 ) ولي عمل خواندن , ازهر دوديسك انجام مي شود ( كاهش تراٿيك گذرگاه - نوشتن بر روي هر دو ديسك ولي خواندن مجزا )
- قابليت برگرداندن %100 داده ها هنگام بروز مشكل براي يك ديسك .
- در نرخ انتقالات داده تغيير محسوسي نداريم. (يعني وجود دو ديسك تٿاوتي با يك ديسك ندارد ) .
- در شرايط خاص RAID1, توانايي تحمل خرابي بيش از يك ديسك را نيز دارد .
- ساده ترين طراحي در تكنولوژي RAID (مدار مربوط به Parity وجود ندارد )
معايب :
- بيشترين تعداد هارد ديسك در ميان انواع RAID (بسته به انتخاب User )
- هزينه بالا
RAID2 : داراي خاصيت ECC با استٿاده از كد همينگ
مزايا و مشخصات :
- تصحيح خطاي بسيار سريع
- مناسب براي انتقال اطلاعات
معايب :
- طراحي بسيار يچيده كه با صدمه ديدن يك ديسك دچار مشكل مي شود .
- نامناسب در ديد تجاري (تعداد زياد درايوها )
كد همينگ : يكي از روشهاي محاسبه و كنترل خطا در سيستمهاي ديجيتال مي باشد . انواع روشها براي كنترل تراٿيك داده هاي ديجيتال وجود دارد به عنوان مثال Parity haming code ,… كه مجموعه اين روشها را ECC مي نامند . (Error Checking and Correcting)
RAID3 : انتقال موازي با استٿاده از خاصيت Parity
مزايا و مشخصات :
- سيكل خواندن و نوشتن بسيار سريع .
معايب :
- طراحي بسيار پيچيده كه با صدمه ديدن يك ديسك مجموعه دچار مشكل مي شود .
كاربرد :
- ميكس و مونتاژ تصوير
- ويرايش تصوير مانند RAID0
RAID4 : ديسك هاي داده مجزا ديسك مربوط به Parity مشترك
مزايا و مشخصات :
- سيكل خواندن بسيار سريع ( تراٿيك كمتر در گذرگاه)
معايب :
- پيچيدگي بسيار بالا در طراحي مدار كنترلي مشكل در برگرداندن داده ها هنگام بروز اشكال در يك ديسك ( چرا كه داده ها روي ديسكها توزيع شده است )
RAID5 : ديسك هاي داده مجزا و Parity توزيع شده در ديسكهاي Data
مزايا و مشخصات :
- در اين نوع به حداقل 3 درايو ديسك سخت نياز داريم .
- تك تك بلوك هاي داده روي ديسك ها نوشته مي شوند و Parity مربوط به هر بلوك نيز داخل هارد مربوط ذخيره مي گردد.
- سيكل خواندن بسيار سريع (تراٿيك كمتر در گذرگاه )
- سيكل نوشتن متوسط (محاسبات مربوط به Parity )
- قابليت و اطمينان بالا (وجود ECC )
معايب :
- خرابي در يك ديسك در خروجي تاثير ندارد.
- طراحي پيچيده مدار كنترلي
- مشكل در برگرداندن داده ها هنگام بروز اشكال
كاربرد :
- در سيستمهاي Server و بانكهاي اطلاعاتي ISPها
RAID6 : ديسكهاي داده ها مجزا با دو Parity توزيع شده مجزا
مزايا و مشخصات :
- RAID6 در واقع نسخه پيشرٿته RAID5 مي باشد كه تصحيح و كنترل خطا را بهبود مي بخشد . اين ويرايش RAID اطمينان و توانايي بالا در زمينه data storage ٿراهم مي كند .
- بهترين انتخاب براي كاربردهاي بحراني و حساس
معايب :
- طراحي مدار كنترلي بسيار پيشرٿته و پيچيده .
- سيكل نوشتن بسيار كند ( دوبار محاسبه مربوط به Parity )
- نياز به N+2 درايو ديسك سخت . بدليل دارا بودن حالت Parity دو بعدي . ( N تعداد ديسكهاي سخت در حالت معمولي )
- ادغام اطمينان بالا با قابليت بالا
RAID7 : نقل وانتقال بهينه شده غير همزمان به منظوردستيابي به نرخ انتقال بسيار سريع
مزايا و مشخصات :
- نقل و انتقال غير همزمان و داراي كنترلگرهاي مستقل.
- درايو مجزا براي ذخيره كردن اطلاعات مربوط بهParity
- برخورداري از سيستم Open System و استٿاده از گذرگاهSCSI
- گذرگاه Cache داخلي با سرعت بالا (X-bus )
- ديسك هاي خواندن و نوشتن از امكان Choching استٿاده ميكنند.
- تكنولوژي مدار توليد Parity تا حدودي با ساير انواع Raid تٿاوت دارد .
-امكان Hot Swaping
Open system : به سيستمي اطلاق مي شود كه قابليت سازگاري با سخت اٿزارها و نرم اٿزارهاي مختلٿ را داشته باشد و امكان كاركردن در سيستمهاي مختلٿ را به راحتي داشته باشد .
RAID10 : اين Raid حداقل به 4 دستگاه هارديسك نياز دارد
مزايا و مشخصات :
- عمل تكه تكه كردن بلوكهاي داده همانند Raid1 انجام مي پذيرد .
- تصحيح و كنترل خطا نيز مانند Raid2 مي باشد .
- نرخ انتقال بالا
- در شرايط معين , امكان تحمل خرابي چند ديسك در اين نوع RAID وجود دارد .
معايب :
- بسيار گران قيمت
- منبع تغذيه حتمأ بايد متصل به ups باشد .
- جابجايي درايوها بايد به صورت موازي انجام گيرد .
- سيستمهاي Server و بانكهاي اطلاعاتي .
RAID53 : نرخ انتقال بالا همراه با قابليت انتقال مناسب
مشخصات و مزايا :
-اين آرايه RAID حداقل به 5 دستگاه ديسك سخت نياز دارد .
- RAID53 در واقع بايد RAID03 نلميده شود زيرا عمل Striping آن همانند RAID0 بوده و Segment بندي آن نيز مانند RAID3 مي باشد.
- تحمل خطاي آن مانند RAID3 مي باشد.
- نسبت به RAID3 داراي نرخ انتقال بسيار بهتري مي باشد.
معايب :
- قيمت بالا
- همه ديسك ها بايد با همديگر سنكرون شوند كه انتخاب نوع و مدل درايو را محدود مي سازد .
- Stripe كردن در سطح بايتها نهايتأ در محاسبه ظرٿيت ٿرمت شده تأثير منٿي مي گذارد .
RAID 0+1 : نرخ انتقال داده بهينه
مزايا و مشخصات :
- حداقل به 4 دستگاه هارديسك نياز دارد .
- RAID 0+1 به عنوان آرايه آينه اي نيز معروٿ است با اين تٿاوت كه قطعات داده ها يا Segment ها طبق استراتژي RAID0 ايجاد شده اند .
- تحمل خطاي اين نوع آرايه مانند RAID5 مي باشد .
- نرخ انتقال بالا .
- بهترين انتخاب براي سيستمهايي كه به كارايي بالا بدون توجه به حداكثر اطمينان نياز داشته باشند .
معايب :
- RAID 0+1 نبايد با RAID10 اشتباه گرٿته شود . كوچكترين مشكل در عملكرد يك درايو , آرايه را به مدل RAID0 تبديل خواهد كرد .
- قيمت بسيار بالا
- جابجايي درايوها بايد به صورت موازي انجام گيرد .
كاربرد :
- پردازشهاي تصويري و fileserever هاي عمومي .
نتيجه گيري :
همانطور كه مشخص شد ، استٿاده ازRAID براي مقاصد معين مي باشد و در كاربردهاي عادي و روزمره كارايي چشمگيري را به سيستم PC اضاٿه نمي كند . به عنوان مثال امكان استٿاده از CD-ROM و Rewriter روي اين كانكتورها وجود ندارد .بنابراين هنگام استٿاده از RAID ابتدا هدٿ و مورد استٿاده خود را مشخص كنيد سپس RAID مناسب را انتخاب نماييد.
منبع: مجله رايان
مقالات ديگه ...
كلاسترينگ (3)
در اين مقاله ساير الگوريتمهاي كلاسترينگ توضيح داده شده اند
K-means clustering:
K- Means ،يکي از ساده ترين الگوريتم هاي يادگيري بدون نظارت است که مسائل کلاسترينگ معروف را حل مي کند. اين الگوريتم از يک شيوه ساده براي کلاسيفاي کردن يک مجموعه داده در يک تعداد از پيش مشخص شده (k) کلاستر،استفاده مي کند.ايده اصلي تعريف k مرکز براي هر يک از کلاستر ها مي باشد . اين مراکز بايستي با دقت زياد انتخاب شوند ، زيرا مراکز مختلف ، نتايج مختلف را به وجود مي آورند.
بنابراين بهترين انتخاب قرار دان آنها (مراکز) در فاصله هر چه بيشتر از يکديگر مي باشد . قدم بعدي تخصيص هر الگو به نزديک ترين مرکز مي باشد. وقتي همه ي نقاط به مراکز موجود تخصيص داده شدند، مرحله اول تکميل شده است و يک گروه بندي اوليه انجام شده است. در اين مرحه نياز داريم که k مرکز جديد براي کلاستر هاي مرحله قبل محاسبه کنيم. بعد از تعيين k مرکز جديد ،مجدداً داده ها را به مراکز مناسب تخصيص مي دهيم.
اين مراحل را آنقدر تکرار مي کنيم که ديگر k مرکز ،جابجا نشوند.
اين الگوريتم تلاش مي کند که يک تابع هدف (Objective Function) را که تابع Squared error مي باشد ، مينيمم کند:
اين الگوريتم از مراحل زير تشکيل شده است:
1- مشخص کردن مراکز اين نقاط معرفي کنند مراکز گروه هاي اوليه مي باشند.
2- تخصيص هر الگو به گروهي که نزديکترين مرکز به الگوي مربوطه را دارد.
3- وقتي که تمام الگو ها تخصيص داده شدند،موقعيت k مرکز دوباره محاسبه مي شود.
4- مراحل 2 و 3 آنقدر تکرار مي شوند تا مراکز ديگر جابجا نشوند.
اگر چه ثابت شده است که الگوريتم هميشه پايان ميپذيرد،الگوريتم k-mean ،لزوما جواب بهينه را پيدا نمي کند. اين الگوريتم داراي حساسيت زيادي به مراکز کلاستر اوليه است که به صورت تصادفي انتخاب مي شوند.براي کاهش اين تاثير مي توان الگوريتم را چندين بار اجرا کرد.
k-means ، يک الگوريتم ساده است که براي بسياري از کاربردها مناسب مي باشد.
Fuzzy C-means Clustering:
FCM ،يک روش کلاسترينگ است که اجازه مي دهد يک الگو به دو يا چند کلاستر تعلق داشته باشد.اين روش اغلب در باز شناسي الگو مورد استفاده قرارمي گيرد .
منبع : http://www.30sharp.com
الگوریتم کلاسترینگ (2)
در این مقاله به توضیح الگوریتم کلاسترینگ سلسله مراتبی پرداخته ایم.
با در دست داشتن N نمونه داده براي کلاستر شدن و يک ماتريس فاصله يا شباهت به ابعاد N*N ، پروسه اصلي کلاستريگ سلسله مراتبي به صورت زير ميباشد :
1. با تخصيص هر نمونه به يک کلاستر شروع کنيد . يعني اگر N نمونه داشته باشيم ، N کلاستر داريم که هر يک داراي يک نمونه مي باشند . فاصله بين کلاستر ها همان فاصله بين کلاستر هاي آنهاست .
2. دو کلاستري را که نزديک تر هستند پيدا کنيد و آنها را ادغام کنيد . حالا يک کلاستر کمتر داريم .
3. فاصله کلاستر جديد را با هر يک از کلاسترهاي قديمي محاسبه کنيد .
4. مراحل 2 و3 را آنقدر تکرار کنيد که همه نمونه ها در يک کلاستر به اندازه N قرار بگيرند
مرحله 3 مي تواند به روش هاي مختلفي انجام گيرد که کلاستريگ single-linkage ، complete-linkage و Average-linkage را مشخص مي کند .
در کلاستريگ single-linkage (که روش connectedness يا minimum هم ناميده مي شود( ، فاصله يک کلاستر از کلاستر ديگر را کوتاهترين فاصله هر عضو از کلاستر اول تا هر عضو از کلاستر دوم در نظر مي گيرند .
اگر داده ها شامل شباهت باشند ، شباهت يک کلاستر تا کلاستر ديگر را برابر بيشترين شباهت هر عضو از کلاستر اول تا هر عضو از کلاستر دوم در نظر مي گيرند .
در کلاستريگ complete-linkage (که روش diameter يا maximum هم ناميده مي شود(، فاصله يک کلاستر از کلاستر ديگر را بزرگترين فاصله هر عضو از کلاستر اول تا هر عضو از کلاستر دوم در نظر مي گيرند .
در کلاستريگ average-linkage ، فاصله يک کلاستر از کلاستر ديگر را ميانگين فاصله هر عضو از کلاستر اول تا هر عضو از کلاستر دوم در نظر مي گيرند .
کلاستريگ سلسله مراتبي ، agglomerative يا متراکم شونده نيز ناميده مي شود ، زيرا کلاستر ها را به تدريج ادغام مي کند .کلاسترينگ تقسيم کننده يا divisive هم وجود دارد که به صورت عکس عمل مي کند ، به اين صورت که ابتدا همه اشياء را در يک کلاستر قرار مي دهد و به تدريج آن را به قطعه هاي کوچکتر تقسيم مي کند.
البته اين نوع کلاستريگ به ندرت مورد استفاده قرار مي گيرد .
اين الگوريم agglomerative است و زمانيکه کلاستر ها براي تشکيل کلاستر هاي جديد ، ادغام مي شوند ، سطرها و ستون هاي مربوط به آنها را در ماتريس مجاورت پاک مي کند .
ماتريس مجاورت به ابعاد N*N ، D = [d(i,j)] را در نظر بگيريد . به کلاستر ها اعداد 0 و 1 و ... و n-1 ، تخصطص داده مي شود و L(k) ، سطح k امين کلاسترينگ است . کلاستري با شماره m به صورت (m) نمايش داده مي شود و مجاورت بين کلاسترهاي (r) و (s) به صورت d[(r) , (s)] نمايش داده مي شود .
الگوريتم شامل مراحل زير است :
1. با کلاسترينگ با سطح L(0)=0 و m=0 شروع کنيد .
2. بي شباهت ترين جفت از کلاستر ها را پيدا کنيد . ((r),(s)) :
D[(r),(s)] = min d[(i),(j)]
مينيمم بين همه جفت کلاسترها در نظر گرفته مي شود .
3.m=m+1 قرار دهيد . کلاستر هاي (r) و (s) را ادغام کنيد تا تا کلاستريگ بعدي را تشکيل دهد . سطح کلاستريگ را به اين صورت تنظيم کنيد :
L(m) = d[(r),(s)]
4. ماتريس مجاورت (D) را update کنيد . به اين ترتيب که سطرها و ستون هاي مربوط به کلاسترهاي(r) و (s) را حذف کنيد و يک سطر و ستون جديد براي کلاستري که تازه تشکيل شده ايجاد کنيد .
مجاورت بين کلاستر جديد (r,s) و کلاستر هاي قديمي k به اين ترتيب محاسبه مي شود:
d [(k), (r,s)] = min d[(k),(r)], d[(k),(s)]
5. اگر تمام اشياء در يک کلاستر قرار گرفتند متوقف مي شويم ، در غير اين صورت به مرحله 2 باز مي گرديم .
يک مثال :
به عنوان مثال يک کلاسترينگ از فواصل بين يک سري از شهر هاي ايتاليايي که بر حسب کيلومتر بيان شده اند را بررسي مي کنيم . روش استفاده شده ، single-linkage مي باشد .
ماتريس فاصله که ورودي مي باشد به صورت زير است : (براي همه کلاستر ها L=0 مي باشد .)
نزديکترين شهرها MI و TO هستند ، که به فاصله 138 کيلومتر مي باشند . آنها در يک کلاستر به نام MI/TO ادغام مي شوند . سطح کلاستر جديد L(MI/TO) = 138 و m=1 مي باشد .
مي توانيم فاصله اين شيء ترکيبي را از همه اشياء ديگر محاسبه کنيم . در کلاسترينگ single-linkage ، قانون اين است که فاصله شيء ترکيبي تا ساير اشياء ، برابر کوتاهترين فاصله از هر عضو از کلاستر تا شيء خارجي مي باشد . بنابراين فاصله MI/TO تا RM ، 564 انتخاب مي شود که فاصله از MI تا RM مي باشد.بعد از ادغام MI و TO ، خواهيم داشت :
min d(i,j) = d(NA,RM) = 219 =>
NA وRM در کلاستر جديدي به نام NA/RM ادغام مي شوند .
L(NA/RM) = 219
m = 2
min d(i,j) = d(BA,NA/RM) = 255 =>
BA و NA/RM در کلاستر جديدي به نام BA/ NA/RM ادغام مي شوند .
L(BA/NA/RM) = 255
m = 3
min d(i,j) = d(BA/NA/RM,FI) = 268 =>
BA/NA/RM و FI در کلاستر جديدي به نام BA/FI/NA/RM ادغام مي شوند .
L(BA/FI/NA/RM) = 268
m = 4
نهايتاً دو کلاستر باقيمانده را در سطح 295 ادغام مي کنيم .
پروسه انجام شده به صورت خلاصه در ساختار سلسله مراتبي درخت زير نمايش داده شده است .
مشکلات :
نقاط ضعف اصلي روش هاي کلاسترينگ agglomerative عبارتند از :
? پيچيدگي زماني ، حداقل ( O(n است که n ، تعداد کل اشياء مي باشد .
? مراحلي که قبلاً انجام شده ، قابل بازگشت نيستند و نمي توان تأثير قدم هاي قبلي را undo کرد .
منبع : http://www.30sharp.com
الگوریتم های کلاسترینگ (1)
در این مقاله به توضیح یکی از الگوریتمهای کلاسترینگ (مدل ترتیبی) پرداخته ایم.
در اين قسمت انواع الگوريتم هاي کلاسترينگ را بررسي مي کنيم. الگوريتم هاي کلاسترينگ را مي توان به دسته هاي اصلي زير تقسيم بندي کرد:
• الگوريتم هاي کلاسترينگ ترتيبي
• الگوريتم هاي کلاسترينگ سلسله مراتبي
• الگوريتم هاي کلا سترينگ مبتني بر بهينه سازي تابع هزينه
اين الگوريتم ها در ابتدا يک کلاستر تک توليد مي کنند و روش هاي سريع و واضحي مي باشند. در اکثر آنها بردارهاي خصوصيات به تعداد دفعات کمي و يا تنها يک بار به الگوريتم داده مي شوند. در اينجا بطور خلاصه الگوريتم ترتيبي پايه را توضيح مي دهيم. در اين نمونه تمام بردارها يک بار به الگوريتم ارائه مي شوند. تعداد دسته ها در اين مورد از قبل مشخص نيستند. در واقع کلاسترهاي جديد در حين اجراي برنامه ايجاد مي شوند. اگر به معناي فاصله (عدم شباهت) بين بردار خصوصيت و کلاستر باشد، هر بردار بسته به فاصله از کلاستر، به کلاسترهاي موجود و يا به کلاستر جديد نسبت داده مي شود. در زير الگوريتم کلاسترينگ ترتيبي پايه آورده شده است.
در الگوريتم هاي کلاسترينگ ترتيبي نتيجه نهايي به ترتيبي که بردارها به الگوريتم ارائه مي شوند بستگي دارد.
منبع : http://www.30sharp.com
مفاهیم اولیه کلاسترینگ
در این مقاله توضیح مختصری از مفاهیم پایه کلاسترینگ ارائه شده است.
کلاسترينگ به معناي کلاس بندي بدون نظارت است که کلاسها از قبل تعيين شده نيستند و يا به عبارت ديگر برچسب کلاس الگوهاي آموزشي در دسترس نيست. بنابراين اکنون هدف اصلي ما سازماندهي الگوها به گروهاي sensible است. که به ما اجازه مي دهند که شباهت و تفاوت بين الگوها را کشف کنيم و نتايج مفيد را درباره آنها استنتاج نماييم. اين ايده در زمينه هاي مختلف ديده مي شود. مثال زير از زيست شناسي الهام گرفته شده است و صورت مسئله را براي ما واضح مي سازد. به حيوانات زير توجه کنيد: گوسفند،سگ و گربه (پستاندار)، گنجشک و بلبل (پرنده)، ماهي قرمز، شاه ماهي (ماهي)، افعي و مارمولک(خزنده) و غوک(دوزيست). به منظور مرتب کردن اين حيوانات در داخل کلاسترها نياز داريم که يک ملاک دسته بندي تعريف کنيم. اگر وجود شش ها را بررسي کنيم، ماهي قرمز و شاه ماهي در يک کلاستر و بقيه در يک کلاستر ديگر قرار مي گيرند(شکل(الف)). اگر ملاک دسته بندي را محيطي که حيوانات زندگي مي کنند قرار دهيم آنگاه گوسفند، سگ، گربه، گنجشک، بلبل،افعي و مارمولک (حيواناتي که بيرون آب زندگي مي کنند) کلاستر اول و ماهي قرمز و شاه ماهي (حيواناتي که در آب زندگي مي کنند) کلاستر دوم را تشکيل مي دهند و غوک که مي تواند هم در آب و هم در خشکي زندگي کند کلاستر سوم را تشکيل مي دهد (شکل (ب)). اگر وجود ستون فقرات را ملاک دسته بندي باشد تمام حيوانات در يک دسته قرار مي گيرند. ما مي توانيم از ملاک دسته بندي مرکب استفاده کنيم. براي مثال اگر ملاک دسته بندي نحوه بدنيا آوردن فرزندان و وجود شش ها باشد ما سه نوع کلاستر داريم که در شکل (ج) آورده شده است.
اين مثال نشان مي دهد که فرايند نسبت دادن اشيا به کلاسترها ممکن است به نتايج بسيار متفاوتي منجر شود. کلاسترينگ يکي از ابتدايي ترين فعاليت هاي ذهني است که براي کنترل کردن مقادير زياد اطلاعات دريافت شده هر روزي استفاده مي شود. پردازش هر بخش از اطلاعات به عنوان يک موجوديت تک امکان پذير نيست. بنابراين انسانها به دسته بندي موجوديت ها (حوادث، انسانها، اشيا و غيره ) در کلاسترها روي مي آورند. هر کلاستر توسط خصوصيات مشترک موجوديت هايي که درون آن قرار مي گيرند تعريف مي شود. کلاستر، يک مجموعه از داده هاست بطوريکه:
· داده هاي موجود در يک کلاستر شبيه يکديگر هستند.
· داده هاي موجود در کلاسترهاي مختلف به يکديگر شبيه نيستند.
کلاستر ها انواع مختلفي دارند که در به زير تعدادي از آنها اشاره شده است:
- كلاسترهاي بخوبي جدا شده
مجموعه نقاط داخل اين كلاستر نسبت به نقاط خارج آن به يكديگر بسيار شبيهند.
- كلاسترهاي مبتني به مركز:
مجموعه نقاط داخل اين كلاستر به مركز كلاستر نسبت به مراكز كلاسترهاي ديگر بسيار نزديكترند.
- كلاسترهاي مبتني بر مجاورت و نزديكي:
مجموعه نقاط داخل اين كلاستر به يك يا تعداد بيشتري از نقاط داخل كلاستر نسبت به نقاط خارج آن شبيهند.
به منظور ايجاد کلاستر ها (انجام عمل کلاسترينگ) اعمال زير بايد انجام شوند:
1. انتخاب ويژگي: خصوصيات بايد به طور مناسبي انتخاب شوند تا اکثر اطلاعات را کدگذاري کنند.
2. مقياس نزديکي: معياري است که ميزان شباهت و يا عدم شباهت دو بردار خصوصيت را مشخص مي کند. تمام خصوصيات انتخاب شده بايد در محاسبه اين معيار شرکت کنند و هيچ خصوصيتي نبايد بر بقيه غلبه کند. به عنوان مثال فاصله اقليدسي يا فاصله منهتن.
3. ملاک دسته بندي: که در قسمتهاي بالا در مورد آن صحبت شده است.
4. الگوريتم کلاسترينگ: پس از اينکه ملاک دسته بندي و مقياس نزديکي انتخاب شدند در اين گام يک الگوريتم خاص جهت روشن کردن ساختار دسته بندي مجموعه داده انتخاب مي شود.
5. اعتبار نتايج: زمانيکه نتايج کلاسترينگ بدست آمد بايد صحت و درستي آنها بررسي شوند. اين کار معمولا بوسيله تست هاي مناسبي انجام مي شود.
منبع : http://www.30sharp.com
کلاسترینگ در ویندوز 2003
کلاسترینگ معنیش همون دسته بندی میشه.
با کلاسترینگ سرور ها میشه بارهای برروی یک سرور رو بین چندین سرور تقسیم کرد (NLB=Netwrok Load Balancing)
در صورت کلاستر کردن یک بالانس کلی بین سرور ها برقرار میشه.
این دسته بندی می تونه به روشهای متفاوتی انجام بشه.
مثلا" فکر کنید یک سایت دارید که هزاران نفر هر روز میان و به اون سر میزنن و ازاش بازدید میکنن و به همین خاطر بار زیادی رو سرورتون هست. شما می تونید با استفاده از چند سرور این بار رو بینشون تقسیم کنید. تنظیمات کلی دسته بندی سرورها رو انجام میدید و بعد از اون هر زمان که کاربرها به سرور شما میان هر دفعه کاربر به یک سرور مسیر داده میشه.
مثل round robin که در DNS هست.(هر دفعه dns یک ipدیگه رو بده)
نوع دیگر دسته بندی برای نرم افزارها و یا دیتابیس های تجاری هست.
شما یک شرکت بزرگ رو مدیریت میکنید و مثلا" نرم افزار و یا دیتابیس X همیشه باید آنلاین باشه و برنامه نویسها و یا کارمندان بخش حسابداریتون از اون دیتا استفاده کنن. شما باید چند سرور خریداری کنید یک هارد اشتراک بگذاریدو تنظیمات RAID و اتصالات دیگر رو روش انجام بدیدو بین سرورهاتون به اشتراک بگذارید.
حالا اگر یکی از سرور های شما ناگهان قطع بشه یا مشگلی پیش بیاد سریعا" سرور بعدی می تونه کار اون یکی سرور رو انجام بده.
این نوع کلاسترینگ یا دسته بندی رو Server Clusters میگن که فقط در ویندوز سرور 2003 ent و datacent فعال هست در صورتی که NLB در تمام نسخه های وین سرور فعال هست.
اگر دوست داشتیددرباره تنظیمات کلاسترها بدونید اون مقاله های آنلاین رو بخونید و به کتابهای مرجع ویندوز سرور مراجعه کنید تنظیمات زیادی داره.
به اینجا هم می تونید مراجعه کنید:
http://www.windowscluster.com
اگر می خواهید تنظیمات NLB رو ببینید می تونید به تنظیمات کارت شبکه خودتون مراجعه کنید و در اونجااز NLB یک properties بگیرید.
From its roots in the Wolfpack Project at Microsoft, clustering has matured into an
important part of any enterprise Windows implementation. This chapter examines
Microsoft’s latest cluster offerings and describes how they can be used to scale and
extend your Windows Server 2003 network.
Acluster can most easily be defined as a group of individual servers that work together
as a single system. Software and clients see the cluster as a single entity, and the cluster is
managed as a single unit. Clustering is used to ensure high availability for mission-critical
applications, manageability for 24/7 implementations, and scalability for large enterprise
solutions. Two clustering technologies are available in MicrosoftWindows Server 2003:
Network Load Balancing (NLB) Primarily intended to balance incoming
TCP/IP traffic. NLB is commonly used for web servers.
Server Clusters Implemented to provide failover services among the clustered
computers. The Cluster service is commonly used for database applications.
You can’t use both on the same server, but you can use the two cluster solutions
together to gain complementary functions—for example, making a database
application available to web site visitors
استفاده از Thread ها در دلفی
اساس کار ویندوز در اجرای برنامه ها بر روی Thread ها است ، هنگامی که برنامه ای اجرا می شود ، کلیه کدها و فایلهای منبع ( Resource ) آن در یک یا چند Thread قرار می گیرند ، درواقع هرProcess در ویندوز دارای یک یا چند Thread است که اطلاعات Process درآنها قرار دارند و بر روی حافظه موقت بارگذاری شده اند ... ، برنامه ها میتوانند در زمان اجرای خود Thread هایی ساخته و سپس آنها را آزاد نمایند ، کار یک Process زمانی به پایان می رسد که تمام ، Thread های آزاد شده باشند ، در غیر این صورت آن Process بسته نخواهد شد ، پس باید در آزادسازی Thread ها دقت زیادی داشت ...
ساخت Thread و استفاده از آن در برنامه :
در دلفی کلاسی به نام TThread قرار دارد که امکان استفاده از Thread ها را فراهم می سازد ...
برای استفاده از یک Thread ابتدا باید یک نسخه از کلاس TThread را Create کرده و سپس از آن استفاده نمایید
برای ساخت یک Thread به صورت زیر عمل می کنیم :
Type
MyThread = Class(TThread)
private
…
protected
...
end;در کد بالا یک نوع از TThread را ساختیم ...
در یک Thread میتوانید Procedure ها و توابعی را قرار داده و از آنها استفاده نمایید ، توجه داشته باشید که برای فراخوانی توابع و متد ها باید از روش Synchronization ( همزمان سازی ) استفاده نمایید ، شاید با دیدن این کلمات احساس کنید که کار سختی در پیش دارید ، اما اصلا این طور نیست ، این کار با اجرای یک تابع ساده امکان پذیر است که در ادامه توضیح خواهیم داد ...
Thread ها یک Event اصلی به نام OnExecute دارند که مربوط به زمان اجرا شدن آنها است ، تمام کار Thread ها در همین Event انجام می شود ، کدی که در این رویداد می نویسید از زمان اجرا شدن Thread تا زمان Terminate شدن آن اجرا خواهد شد.
نمی توان در یک Thread به صورت مستقیم با اشیای فرم ارتباط داشت ، چنین درخواستهایی از Thread باعث متوقف شدن کار آن خواهد شد و نتیجه مطلوبی نخواهید گرفت ... ، برای دسترسی به اشیاء باید از Procedure های جدا و Synchronize استفاده نمایید تا اختلالی در کار Thread به وجود نیاید ...
ابتدا باید توابع و متد ها را در یک Thread تعریف کرده و کد مورد نظر را در آن بنویسیم ، سپس با تابع Synchronize به روش زیر می توانیم آن را اجرا نماییم :
Synchronize( My Procedure );
طریقه ایجاد توابع و Procedure ها در Thread مانند سایر کلاسها ( مثلا TForm ) است ، برای مثال فرض کنید متدی داریم که در آن عمل Progress کردن یک ProgressBar را انجام می دهیم ، میتوانیم به صورت زیر این متد را تعریف نماییم :
Type MyThread = Class(TThread) private procedure doProgress; end; Implementation procedure doProgress; begin Form1.ProgressBar1.Progress; end;
ساخت و استفاده از Thread :
در بالا نحوه تعریف یک Thread را توضیح دادیم ، برای استفاده از آن باید یک متغیر با نام Thread تعریف شده تعریف نماییم و از آن استفاده کنیم ...
نکته دیگر این که متد Create برای Thread ها یک پارامتر به نام Suspended دارد که از نوع Boolean می باشد و به صورت پیشفرض دارای مقدار False است ...
این پارامتر مشخص میکند که آیا Thread در حالت متوقف ساخته شود یا اینگه بعد از ساخته شدن بلافاصله در حالت اجرا قرار گیرد ( Thread بعد از ساخته شدن ، متد Execute اش اجرا خواهد شد ، با True کردن این پارامتر ، متد Execute را متوقف کرده و از اجرا شدن کدها جلوگیری می نماییم ) ، بعد از اجرای Thread ممکن است نیاز باشد که برخی از خصوصیات آن را تغییر دهیم ، پس باید به این پارامتر مقدار True دهیم تا Thread ما بعد از ساخته شدن در حالت اجرا نباشد و امکان تغییر خاصیتهای آن وجود داشته باشد ...
برای مثال بهتر است که خاصیت FreeOnTerminate مربوط به Thread ساخته شده را True نماییم تا هنگام فراخوانی متد Terminate برای پایان کار Thread ، آن را آزاد کنیم ...
پس کد ما تا اینجا به شکل زیر درخواهد آمد :
var T : MyThread; begin T := MyThread.Create(True); T.FreeOnTerminate := True; T.Resume; end;
در کد بالا Thread ما ساخته شده و سپس خاصیت FreeOnTerminate آن True شده و سپس با استفاده از متد Resume به کار خود ادامه می دهد ( از حالت Suspend بیرون می آید ) ...
کد نویسی در رویداد OnExecute :
هر Thread ای که Create می کنید در حالت پیشفرض رویداد OnExecute را دارا می باشد ، برای این که آن را به دلخواه خود تغییر دهید باید آن را دوباره تعریف کنید ، برای تعریف این رویداد باید از قسمت Protection و واژه Override استفاده نمایید تا رویداد قبلی Thread از بین رفته و رویداد جدیدی که ایجاد می کنید جایگزین شود ، پس کد شما به این صورت خواهد بود :
type MyThread = Class(TThread) private ... protected procedure Execute; override; end; var implementation procedure MyThread.Execute; begin end;
اجرای Procedure های تعریف شده ( Synchronization ) :
برای فراخوانی Procedure هایی که تعریف کرده اید باید ار تابع Synchronize استفاده نمایید ( در داخل رویداد OnExecute ) ، برای مثال :
procedure MyThread.Execute; begin Synchronize(doProgress); end;
تابع Synchronize یک پارامتر دارد که از نوع TThreadMethod است و Procedure ای که در Thread تعریف کردید باید در آن قرار گیرد ...
مدیریت Thread :
برای استفاده از Thread با متدهای آن آشنایی داشته باشید ...
برای متوقف کردن یک Thread باید از متد Suspend استفاده نمایید ، و برای ادامه کار آن باید از متد Resume استفاده کنید :
MyThread.Suspend; ... MyThread.Resume;
برای این که بفهمید آیا Thread ما در حالت Suspend است یا خیر میتوانید از خاصیت Suspended استفاده نمایید ، این خاصیت یک مقدار Boolean دارد که مشخص می کند Thread مورد نظر Suspend شده یا خیر :
var isSuspended : Boolean; begin isSuspended := MyThread.Suspended; end;
اگر می خواهید که کار یک Thread را کاملا متوقف نمایید ، می توانید از متد Stop استفاده کنید ، در این صورت برای اجرای دوباره Thread باید از متد Execute استفاده نمایید :
MyThread.Stop; ... MyThread.Execute;
خاصیت Priority :
اگر در محیط ویندوز برنامه Task Manager را اجرا نموده و به قسمت Process بروید لیست Process های در حال اجرا را می بینید ، اگر بر روی هر کدام از این Process ها راست کلیک نمایید گزینه ای به نام Set Priority می بینید که مقادیری مثل High ، Normal یا Low و ... دارد ، Priority مشخص می کند که در زمان الویت بندی اجرای Thread ها در CPU ، کدام یک ارجعیت دارند و به CPU ابتدا باید به درخواست کدام یک از آنها جواب دهد ، هرچه مقدار Priority یک Thread مقدار بالاتری داشته باشد ، الویت بیشتری خواهد داشت و عملیاتش زودتر انجام خواهد شد ...
می توانید برای Threadخود این خاصیت را تنظیم نمایید ، این خاصیت از نوع TThreadPriority می باشد ، در تصویر زیر مقادیری که می توانید به عنوان Priority قرار دهید مشخص شده است :

ThreadID :
این خاصیت شناسه ای برای Thread شما است که هم در زمان ساخت ( در زمان Debug ) و هم در زمان اجرای برنامه می توانید از آن استفاده نمایید ، هنگامی که قصد Debug کردن برنامه خود در محیط دلفی را دارید ، پس از اجرا کردن برنامه اگر از منوی View گزینه Debug Windows و سپس گزینه Threads را انتخاب نمایید ، پنجره ای باز شده و لیستی از Thread های در حال اجرا در برنامه شما را نمایش میدهد که هرکدام از آنها دارای شناسه ای به نام ThreadID هستند ، با داشتن این مقدار می توانید Thread مورد نظر خود را در این پنجره پیدا نمایید ...
این مقدار را می توانید به روش زیر بدست آورید :
var MyThreadID : Cardinal; begin MyThreadID := MyThread.ThreadID; end;

خروج از Thread و آزاد کردن آن :
رویداد OnTerminate :
Thread یک رویداد دیگر دارد که میتوانید آن را مانند OnExecute تنظیم نمایید و تغییر دهید ، این رویداد زمانی اتفاق می افتد که Thread مورد نظر Terminate شود ، اما متد دیگری به نام DoTerminate وجود دارد که این رویداد را اجرا میکند بدون اینکه Thread مورد نظر Terminate شود ( یا شده باشد ) ، با متد ...
---------
اگر یادتان باشد ، ما در هنگام ساخت Thread مقدار خاصیت FreeOnTerminateآن را True کردیم پس اگر آن را Terminate نماییم ، آزاد ( Free ) خواهد شد ، با متد Terminate میتوانید به کار یک Thread پایان دهید :
MyThread.Terminate;
در برخی موارد ممکن است Thread مورد نظر Terminate نشود ! ، درواقع هنگامی که ما متد Terminate را اجرا می کنیم ، کار عمده ای انجام نمی شود ، بلکه فقط خاصیت Terminated مربوط به Thread بر روی True تنظیم می شود ! ، درواقع این عمل به Thread اعلام میکند که به زودی ممکن است کارش پایان یابد ، باید برای پایان کار Thread ، بعد از اجرا این متد با استفاده از متد Exit ( مربـوط به Thread نیست ) از رویداد OnExecute خارج شد ( دستور Exit در دلفی برای خروج از یک رویه ( تابع یا ... ) به کار می رود ) :
procedure MyThread.Execute; begin Synchronize(doProgress); … MyThread.Terminate; Exit; end;
توجه داشته باشید که در قسمتهای مختلف کد باید چک کنید که آیا Terminated مربوط به Thread مقدار True دارد یا خیر و اگر مقدار True داشت با استفاده از دستور Exit از رویداد خارج شوید :
procedure MyThread.Execute;
begin
if MyThread.Terminated then
Exit;
…
if MyThread.Terminated then
Exit;
…
MyThread.Terminate;
Exit;
end;علاوه بر موارد بالا می توانید از متد WaiteFor استفاده نمایید ، متد WaiteFor تا زمانی که کار Thread به پایان برسد کارش تمام نخواهد شد ، درواقع می توانید کد Exit را بعد از این متد بنویسید تا خیالتان از بابت پایان کار Thread راحت شود ! :
procedure MyThread.Execute;
begin
if MyThread.Terminated then
Exit;
…
if MyThread.Terminated then
Exit;
…
MyThread.Terminate;
MyThread.WaiteFor;
Exit;
end;
منبع : http://barnamenevis.org/forum/showthread.php?t=79463
Multi threading در پیتون
موضوع هایی که می خواهیم در موردشان بحث کنیم:
در این موضوع , ما می خوایم راههایی که شما می توانید اجرای موازی و همزمان رو در کد خودتون استفاده کنید و چگونکی استفاده ازبرنامه نویسی Multithread (MT) و ایجاد آن در پیتون. این مقاله مثل تمام مقالات من کامل نیست و من فقط مطالبی که به نظر مهم هستند و به کمکتون می یاد را توضیح می دهم.
قبل از هر چیز باید بدانید که برنامه نویسی چند نخی (Multithread) یکی از قابلیت هایی است که مستقیما به سیستم عامل مربوط می شود یعنی سیستم عامل شما باید از این شیوه پشتیبانی کند (سیستم عامل ویندوز این قابلیت را دارد). هر وقت برنامه ای شروع به اجرا می کند ویندوز یک ( نخ) به ان اختصاص می دهد این Thread در واقع رابط بین برنامه و CPU است . همونطور که می دانید CPU برای اینکه بتواند چند وظیفه را بصورت هم زمان انجام دهد , به هر Thread یک زمان مشخص اختصاص می دهد (با توجه به اولویت Thread). مثلا اگر ما دو Thread در حال اجرا داشته باشیم CPU یک زمان خاصی را به Thread اولی اختصاص می دهد تا کارش را انجام دهد پس از اتمام زمان نوبت به Thread بعدی می رسد و به همین ترتیب...
برنامه های کامپیوتر صرفا اجرا پذیر هستند, باینری (یا طور دیگر ), این برنامه ها روی دیسک قرار دارند. اینها نمی توانند کاری انجام بدهند(به اصطلاح مرده هستند) تا زمانی که داخل حافظه بارگذاری شوند و از سیستم عامل درخواست کنند. پروسس یک برنامه در حال اجرا است. هر پروسس یک ادرس فضا , حافظه و یک پشته داده دارد. سیستم عامل کنترل کننده تمام پروسس های در حال اجرا بر روی سیستم است, و زمان رو میان انها به طور خوب تقسیم می کند. پروسس ها می توانند چند شاخه بشوند یا یک پروسس جدید برای انجام دیگر کارها ایجاد کنند, هر یک از این پروسس های جدید حافظه و پشته داده و... خودشان را دارند ولی نمی توانند به طور عمومی از اطلاعات سهمی داشته باشند مگر اینکه از IPC ها استفاده کنند.
Thread ها یا نخ ها به قطعه کدهایی گفته می شود که به صورت موازی و همزمان با هم اجرا می شوند و به شما این امکان را می دهند برنامه هایی را طراحی و پیاده سازی کنید که می توانند چندین کار را با هم انجام دهند به طور مثال : جستجوی چند فایل یا گرفتن اطلاعات از طریق شبکه و ذخیره انها در دیسک. البته اصولا نخ ها به صورت همزمان اجرا نمی شوند بلکه CPU براساس تنظیم زمان خود یک زمان غیر قابل درک برای انسان را در نظر می گیرد سپس در این مدت زمان یک کار را انجام داده و پس از اتمام این زمان به سراغ کار بعدی می رود به اصطلاح در کارهای خود سوییچ می کند. به این مدت زمان کوتاه اصطلاحا Time Slice یا پرش زمان می گویند.
پیتون از برنامه نویسی چندنخی پشتیبانی می کند. پس باید سیستم عامل در حال اچرا ان را پشتیبانی کند بیشتر ورژنهای Unix , Solaris , Linux و Windows از این قابلیت پشتیبانی می کنند و فکر کنم مکینتاش از این قابلیت برخوردار نیست.
پیتون چند ماژول برای پشتیبانی ازبرنامه نویسی MT شامل thread , threading و Queue را اماده دارد. ماژولهای thread و threading به برنامه نویس اجازه ساختن و اداره نخ را می دهند. ماژول thread برای کار با نخ به صورت ساده و پایه ای است ولی ماژول threading خصوصیات سطح بالا و کاملی از برنامه نویسی نخ در اختیار ما قرار می دهد. ماژول Queue به کاربر اجازه ساختن صف داده را می دهد. این ماژول در محدوده بحث ما نیست و شاید در مقاله دیگری در مورد ان بحث کردیم.
این ماژول همان طور که گفته شد امکانات کم و سطح پایینی برای کار با چندین نخ در اختیار ما قرار می دهد. تابع اصلی و کلیدی این ماژول start_new_thread() است این تابع خیلی به apply() شباهت دارد.من در اینجا ابتدا چند تا از متدهای این تابع را توضیح می دهم.
1.start_new_thread(function, args, kwargs = None)
شروع یک نخ جدید و عددی که مشخص کننده هویت ان است نخ با گرفتن یک لیست از ارگومانها (که باید در داخل tuple باشند) تابع را اجرا می کند.ارگومان kwargs اختیاری است که با دیکشنری از کلمات کلیدی ارگومانها مشخص می شود. وقتی تابع اجرا شد و بازگشتی ان مشخص شد نخ از کار می افتد.
2.interrupt_main()
ایجاد یک KeyboardInterrupt در نخ اصلی , یک subthread می تواند می تواند از وقفه ایجاد شده در نخ اصلی استفاده کند.
3.exit()
باعث اجرای استثنای SystemExit می شود. اگر نتوانست پیدا کند باعث توقف نخ می شود.
4.allocate_lock()
برگرداندن یک شی lock جدید . متدهای قفل ها در زیر امده اند.
5.get_ident()
عدد مشخص کننده هویت نخ در حال جاری را برمی گرداند این عدد یک عدد غیر صفر است. این اعداد که مشخص کننده هویت نخ هستند هیچ گاه بعد از استفاده نخ و خارج کردن ان دور انداخته نمی شوند و می توانند به نخ هایی که بعدا ایجاد می شوند نسبت داده شوند.(مثل استفاده از دایل اپ برای کانکت شدن به اینترنت که هر دفعه یک ای پی به ما داده می شود و بعد از قطع ارتباط این ای پی به شخص دیگری که به اینترنت وصل می شود داده می شود...)
1.acguire([waitflag])
برای بدست اوردن و جستجوی lock های قطعی است.
2.locked()
اگر یک lock بدست اورد 1 در غیر این صورت نتیجه 0 است
3.release()
برای ازاد کردن lock
برای فهمیدن و درک چنین بحث هایی در برنامه نویسی باید خیلی تمرین کرد و مثال های مختلفی را تجزیه و تحلیل کرد. مثال پایین یک مثال خوب و ساده برای دیدن نتیجه کار بعضی از توابع و متدها است. زیاد هم سخت نیست کمی دقت کنید متوجه می شوید.
01 #Using thread and Locks 02 03 import thread 04 from time import sleep, time, ctime 05 loops = [4, 2] 06 def loop(nloop, nsec, lock): 07 print 'start loop', nloop, 'at:', ctime(time()) 08 sleep(nsec) 09 print 'loop', nloop, 'done at:', ctime(time()) 10 lock.release() 11 def main(): 12 print 'starting threads…' 13 locks = [] 14 nloops = range(len(loops)) 15 16 for I in nloops: 17 lock = thread.allocate_lock() 18 lock.acquire() 19 locks.append(lock) 20 21 for I in nloops: 22 thread.start_new_thread(loop, \ 23 (I, loops[i], locks[i])) 24 25 for I in nloops: 26 while locks[i].locked(): pass 27 28 print 'all DONE at:', ctime(time()) 29 30 if __name__ == '__main__': 31 main() 32
اگر شما قادر به کار کردن با ماژول thread باشید و درکی از آن داشته باشید از این ماژول نیز می توانید بدون توضیح استفاده کنید البته این ماژول امکانات فراوانی دارد که در ماژول thread وجود ندارد ولی به هر حال یاد گیری آنها ساده است. چون توضیح این ماژول به طور کامل خیلی وقت می برد و باعث طولانی شدن مطالب و شاید سردرگمی شما شوند.
منبع:
خلاصه شده از وبلاگ زیر
آدرس : http://salmancg.blogfa.com/cat-6.aspx
فایل اول مربوط به آشنایی مقدماتی با تکنولوژی گرید هستش.
فایل دوم مربوط به بررسی دقیق معماری گرید هستش، این فایل ترجمه Part دوم کتاب Introduction to Grid از شرکت IBM هستش که کار ترجمه رو (به ترتیب حروف الفبا) من و خانم اسماعیل زاده و آقای بنائی و خانم طیرانی و آقای فاتحی انجام دادیم.
اینجا از جمال عزیز برا پیگیریهاش و بیژن گل برا فعالیتاش در زمینه اطلاع رسانی، تشکر می کنم.
فایل ppt پروژه شیوه ارائه (Grid Technology)از لینک زیر هم می تونید یه کتاب خیلی معتبر در زمینه Grid دانلود کنید. این کتاب از انتشارات شرکت IBM هستش.
برای Clustering کردن، بستگی داره که شما در چه سطحی مایل به انجام این قضیه باشید. مثلاً میتونید یک نرم افزار رو Clustering کنید که برای این کار احتمالاً باید از Platform هایی مثل Java استفاده کنید که خود دارای امکانات Application Clustering هستند.
راه دیگه ای که داره توسط ما هم از اون استفاده میشه، Cluster کردن Apache و MySQL بر روی چندین سرور هست. برای این کار، باید DNS سروری داشته باشید که بر اساس Load سرور ها، IP های مختلف رو به کاربر در هنگام DNS Querry بده، بدین صورت کاربر شماره یک ، آدرس IP اول شما رو از DNS Server میگیره و کاربر شما دو هم آدرس شماره دوم رو و الی آخر
کاربر یک اتصال به سرور Apache شماره یک شما به IP مثلاً : xxx.xxx.xxx.1
کاربر دو اتصال به سرور Apache شماره دو شما به IP مثلاً : xxx.xxx.xxx.2
کاربر سه اتصال به سرور Apache شماره سه شما به IP مثلاً : xxx.xxx.xxx.3
....
حالا شما باید دارای چندین نسخه از سایتتون بر روی سرور های Apache تون باشید که برای این کار از نرم افزار های محتلفی برای Sync کردن اطلاعات می تونید استفاده کنید. در مورد MySQL یا SQL Server هم دقیقاً همین طور هست یعنی تعدادی سرور MySQL یا SQL هست که Cluster هستن. نرم افزار MySQL خودش از طریق MySQL Clustering از این امکان پشتیبانی می کنه، بنابر این شما می تونید تعداد نامحدودی سرور MySQL داشته باشید که Sync هستن و به صورت Cluster با هم کار می کنند.
این نوع کلاستر کاملاً Fail Safe هست، چرا که در صورت داون بودن هر کدم از سرور ها، سرور دیگری پاسخگوی کاربران خواهد بود.
My team is looking for some folks to join up and help us bring grid technology to our customers. Drop me a line!
منبع : http://gridgurus.typepad.com
I once worked with this person who wrote programs that only wrote to a single file. Once this program was put into the grid environment it would routinely create files that were hundreds of gigabytes in size. Nobody considered this to be a problem because the space was available and the SAN not only supported files of that size, but also performed amazingly well considering the expectations. While this simplifies the code and data management, there are a number of reasons why this is not a good practice.
Why would anybody do such a thing? All your data are belong to us?
منبع : http://gridgurus.typepad.com

ابر رایانه وسیله ای برای تبدیل مسایل محاسبه ای به مسایل ورودی و خروجی است.
کن باچر (Ken Batcher)
ابر رایانه رایانه ای است که در زمان معرفی از نظر ظرفیت پردازش و به خصوص سرعت محاسبه ازدیگر ماشین ها قوی تر باشد. اولین ابر رایانه ها در دهه ی 1960به طور عمده در موسسه اطلاعات کنترل (CDC) توسط سیمور کری«Seymour Cray» طراحی شد. کری تا دهه ی 1970 زمانی که برای تاسیس شرکت خود پژوهشکده کری, از آن جدا شد آنرا هدایت می کرد. کری بعدها با طرح های جدید خود بازار ابر رایانه را در دست گرفت و تا 25 سال (1965 1990) بی رقیب ماند. در دهه ی 1980به موازات تولید یک دهه قبل تر کامپیوتر کوچک هاشمار زیادی از رقیبان کوچکتر وارد بازار شدند اما بسیاری از آنها در" رکود بازار ابر رایانه ها" ی اواسط دهه ی 1990 ناپدید شدند. امروزه ابر رایانه ها طرح های یک بار تولید شونده هستند که توسط شرکت های "سنتی" مانند IBM و HP طراحی می شوند. این شرکت ها بسیاری از شرکت های دهه ی 1980 را برای استفاده از تجاربشان خریداری کردند، هر چند در طراحی ابر رایانه ها موسسه ی کری متخصص تر است .

معنای کلمه ی ابر رایانه تا حدی متغیر است , و ابر رایانه های امروزی فردا دیگر کاربردی نخواهند داشت، همانگونه که از کولاسوس (Colossus)، (اولین رایانه ی الکترونیکی برنامه دار رقمی دنیا، که طی جنگ جهانی دوم رمز های آلمانی ها را می شکست) پیدا است. ماشین های اولیه ی سی دی سی (CDC) صرفاً پردازنده های منفرد پر سرعتی بودند که تا ده برابر سریع تر از سریع ترین ماشین هایی که توسط دیگر شرکت ها معرفی شده بودند کار می کردند. در دهه ی 1970 بیشتر ابر رایانه ها برای استفاده از پردازنده ی برداری طراحی می شدند و بسیاری از بازیگر های تازه کار برای ورود به بازار پردازنده هایی از این نوع را با قیمت ارزان تر عرضه می کردند. در دهه های 1980و 1990 پردازنده های برداری جای خود را به سیستم های پردازش موازی فشرده با هزاران سی پی یو (CPU) ساده ای داد که برخی از آنها واحد های غیر مرسوم و برخی طرح های متداول و سنتی بودند. امروزه طرح های موازی بر پایه ی ریز پردازنده های RISC " غیر مرسوم" مانند PowerPC یا PA_RISC قرار دارند.

منبع : zorrieh
Edna Nerona in an IBM Developer Work article, recommends a list of reading material for grid developers and researchers. Some of the important links are being provided here, For rest see the actual article.
منبع : http://www.gridblog.com/comments.php?id=242_0_1_0_C
"Grid computing is the latest to join the bandwagon of managed services. It's a good way of avoiding an expensive infrastructure investment", writes Bob Violino in his article Grid Computing Comes Around in this edition of Global Services magazine.
This article focuses on grid computing as a managed service. “What differentiates grid managed services from straight hosting is that the entire technology substrate that enables grid computing [software, hardware, storage] has already been deployed by the service provider,” says Ahmar Abbas, MD, Grid Technology Partners, a consulting firm in Falls Church, Va. “The client needs to just focus on the application enablement so that it can utilize the grid infrastructure.” Also different is the concept of paying for CPU utilization rather than a monthly fee for hosting infrastructure.
منبع : http://www.gridblog.com/comments.php?id=240_0_1_0_C
A few weeks back I blogged about Amazon's Simple Storage Service (S3) and how it was gaining traction in the market.
Well, it turns out that Amazon has even greater ambitions than just providing loads of hosted and managed storage! Today they announced their Elastic Compute Cloud (Amazon EC2).
The key to the technology seems to be the Amazon Machine Image (AMI). Users can create AMI based on their particular application or system profile. These are uploaded to the S3 service and are brought on line when required.
I can see some immediate business continuity / disaster recovery applications. Though not quite sure how load balancing occurs across multiples AMI instances that are brought live as application servers.
Another great step by Amazon to turn is technology platform into a revenue generating engine!
منبع : http://www.gridblog.com/comments.php?id=239_0_1_0_C
Independent Software Vendors (ISVs) that venture into the SaaS world have taken on two distinct sets of responsibilities. First, like traditional software companies, SaaS vendors are responsible for continually delivering innovative and relevant software products. Second, SaaS vendors must also develop, manage and support the infrastructure that is used to provide the software to the end user, under a regime of demanding service level agreements and associated penalties. Here's a look at the challenges (and rewards) ahead.
Read full article in ITWorld
منبع : http://www.gridblog.com/comments.php?id=238_0_1_0_C
Recently, I have been busy at work so stopped blogging for a while. During the period of inactivity, there had been numerous news items and grid related activities that I have been starring in my reader and mails. The following are highlights of this somewhat longer post.
Mark Linesch, who will lead the group, said the OGF would "open new doors to scientific discovery, business value and commercial adoption worldwide."
Experts welcomed the end of the groups' prolonged sparring over definitions and semantics.
SynfiniWay proved to have the most complete and integrated Grid computing solution for aerodynamics analyses at Airbus, combining service-oriented applications with open workflow capabilities for efficient support of complex dynamic processes.
Fujitsu Systems Europe has also been contracted to develop the services around the aerodynamic applications, and to integrate SynfiniWay within the existing user desktop tools for transparent grid access.
منبع : http://www.gridblog.com/comments.php?id=236_0_1_0_C
What do Microsoft and SmugMug have in common? Both rely on the Amazon Simple Storage Service (S3) for cheap and reliable web-scale storage. With Amazon S3, growing companies now have the resources to look and feel like a Fortune 500 enterprise.
Today, Amazon announced a variety of customers that together are storing more than 800 million data objects using Amazon S3. On one end of the spectrum there is Microsoft, which is utilizing S3 to dramatically reduce its storage costs without compromising scale or reliability. On the other end are small businesses such as SmugMug that are depending on the S3 benefits of scale and cost-efficiently previously only available to large companies.
منبع : http://www.gridblog.com/comments.php?id=235_0_1_0_C
We're combining the best of GlobusWorld, Grid Engine Workshop and Rocks-a-Palooza into one killer event in Oakland this May. Here's why you should come to the Open Source Grid and Cluster Conference:
This should be a fantastic conference, I'll look forward to meeting you there.
The term "cloud computing" seems to be attracting lots of attention these days. If you google it, you'll find more than half a million results, starting with Wikipedia definitions and news involving companies like Google, IBM, and Amazon. There is definitely no shortage of blogs and articles on the subject. While reading some of those, I've stumbled upon an excellent post by John Willis, in which he shares what he learned while researching the "clouds".
One interesting point from John's article that caught my eye was his regard of virtualization as the main distinguishing feature of "clouds" with respect to the "old Grid Computing" paradigm ("Virtualization is the secret sauce of a cloud."). While I do not disagree that virtualization software like Xen or VMware is an important part of today's commercial "cloud" providers, I also cannot help noticing that various aspects of virtualization were part of grid projects from their beginnings. For example, SAMGrid, one of the first data grid projects that served (and still serves!) several of Fermilab's High Energy Physics experiments since the late 1990's, allowed users to process data stored in multiple sites around the world without requiring users to know where the data will be coming from, and how will it be delivered to their jobs. In a sense, from physicist's perspective experiment data was coming out of the "data cloud". As another example, "Virtual Workspaces Service" has been part of the Globus Toolkit (as incubator project) for some time now. It allows an authorized grid client to deploy an environment described by the workspace metadata on a specified resource. Types of environments that can be deployed using this service range from atomic workspace to a cluster.
Although I disagree with John's view on the differences between the "old grid" and "new cloud" computing, I still highly recommend the above mentioned article, as well as his other posts on the same subject.
منبع : http://gridgurus.typepad.com
CHICAGO, Nov. 17 -- After a period of focused testing, inSORS Integrated Communications and Argonne National Laboratory's Mathematics and Computer Science Division have confirmed the interoperability of AG Toolkit 2.0 and inSORS IG2.0. This development is critical to support the increasing demand for collaborative application tools, supporting group-to-group collaboration across the Grid, and incorporating multimedia large-format displays, presentation and interactive environments and interfaces to Grid middleware and to visualization environments. This technical milestone uniquely addresses the Grid community's interest in the open source framework of the AG Toolkit release, combined with priority commercial features such ease of use, application enhancements, and support packages. The user community stands ready to take advantage of this integration to support diverse collaboration requirements, including distributed meetings, lectures, and training. For example, the Access Grid (AG) is used. Dr. Jonathan C. Silverstein, Director of the Center for Clinical Information at the University of Chicago Hospitals, noted that the "compatibility of the inSORS AG solution with the Argonne open source Access Grid 2.0 software is outstanding news for the biomedical community. [Doctors] now have the benefits of both worlds: open source to expedite enhancements coupled with the turn-key commercial solution enabling the functionality to collaborate."
Another group active in the Access Grid community and an inSORS client has already implemented the interoperable package delivered by inSORS. The National Center for Atmospheric Research and the University Corporation for Atmospheric Research use the Access Grid technology as their primary collaboration tool. NCAR/UCAR deployed IG2.0 to several remote sites, including an inSORS custom Virtual Venue and bridging solution. NCAR/UCAR, working with inSORS and IG2.0, is dedicated to taking advantage of the AG Toolkit architecture while maintaining the specialized features provided by the inSORS software.
Michael Galich, CEO of inSORS, said, "Confirming the ability to plug the unique inSORS applications and services into AG 2.0 is exciting, and a complete win-win for all concerned." He noted that collaborative software is important to inSORS customers. "The AG 2.0 platform, united with the inSORS added feature set, creates a uniquely capable and scalable collaboration platform to build on for years to come," Galich said.
Some of the specialized inSORS features include improved audio and video applications, a data-sharing application-IGPix, an integrated text chat, remote control for cameras, an integrated scheduler, an integrated multicast-unicast bridge, interoperability with H323 devices and a record and playback application. These coupled with the new features of ANL's AG 2.0 release, which include data sharing and a generic framework for application integration, constitute a powerful collaboration suite.
Rick Stevens, director of the Mathematics and Computer Science Division at Argonne, said he was delighted that the commercial audience for the Access Grid can easily find the additional support and features they require from inSORS. He said, "Argonne is pleased to report another successful example of technology transferred to the private sector - particularly as the Access Grid represents another triumph for the viability of open source software."
منبع : http://www.gridblog.com/comments.php?id=191_0_1_0_M5
ثبت رکورد جدید انتقال اطلاعات با سرعت 16.4 ترابیت بر ثانیه

سرویس اخبار خارجی ایتنا - محققین برای این کار از 164 کانال مالتیپلکس که از روی طول موج دستهبندی شده و روی سرعت 100Gbps تنظیم گردیده بودند استفاده کردند.
خبر دستیابی محققین Alcatel-Lucent به رکورد جدیدی در ارسال اطلاعات بصورت نوری با استفاده از سه مدار فوتونی یکپارچه که در روز چهارشنبه همین هفته اعلام شد، امیدها را برای رسیدن به سرعت یکصد مگابیت بر ثانیه در شبکههای اترنت افزایش داد.
محققین Alcatel-Lucent در مقالهای که در کنفرانس ارتباطات فیبر نوری و نمایشگاه/کنفرانس ملی مهندسی فیبر نوری (OFC/NFOEC) اعلام داشتند برابر تحقیقات انجام شده احتمالاً خواهند توانست به روشهای مؤثری برای ارسال پرسرعت اطلاعات دست بیابند.
در بخشی از این مقاله آمده است: «فناوریهای متعددی از جمله optoelectronic photoreceiver خطی و همچنین یک میکسر منسجم فوق سبک و مقاوم در برابر حرارت در این آزمایشات بکار گرفته شدند.»
ارسال موفقیتآمیز اطلاعات نوری توسط پژوهشگران آزمایشگاههای بل در Villarceaux فرانسه و با کمک آزمایشگاههای طالس 3 و 4 شرکت آلکاتل و همچنین شرکت Kylia که در زمینه ارائه راهحلهای نوری فعالیت دارد، با سرعت 16.4 ترابیت بر ثانیه و در مسیری بطول 2550 کیلومتر صورت پذیرفت.
محققین برای این کار از 164 کانال مالتیپلکس که از روی طول موج دستهبندی شده و روی سرعت 100Gbps تنظیم گردیده بودند استفاده کردند.
منبع : http://www.itna.ir
بزرگترین ابرکامپیوتر اروپا ساخته میشود

انی که این ابرکامپیوتر تکمیل شود، سرعت اینترنت، سرعت انتقال اطلاعات و... در بریتانیا سریعتر از تمام کشورهای اروپایی خواهد شد.
جگوار 54 هزار ميليارد محاسبهي رياضي را در يك ثانيه انجام ميدهد
ابرکامپیوترها پرواز میکنند!

سازمان فضایی آمریکا(ناسا) قصد دارد با سرمایهگذاری فراوان یک ابرکامپیوتر را به فضا ارسال کند.
منبع : http://www.ict-khz.com
امارات ابركامپيوتر جديد ساخت

مركز آموزش و تحقيقات عالي امارات متحده عربي يك ابركامپيوتر جديد راهاندازي كرد.
منبع : http://www.itna.ir
تسخير مرز تازه نانومتری در عالم تراشه ها
هر چه مصالح اوليه ساختمانی ريزپردازنده کوچکتر باشد، سرعت و بازدهی آن بيشتر می شود.
شرکت کامپيوترسازی آی بی ام نيز گفته است که قصد توليد پردازنده ای با عناصر ريزتر از نسل فعلی را دارد.
"آی بی ام" که گاه از آن به عنوان "بيگ بلو" نيز ياد می شود و فناوری جديد را با شرکايش توشيبا، سونی و ای ام دی (AMD) توسعه داده، قصد دارد پردازنده های تازه را از سال 2008 در تراشه های خود جای دهد.
اما اينتل می گويد توليد تجاری پردازنده های تازه خود را از اواخر امسال در سه کارخانه آغاز خواهد کرد.
نشت الکتريکی
اين تحول بدان معنی است که "قانون" بنيادی مور همچنان اعتبار خود را حفظ می کند.
گوردون مور، از بنيانگذاران شرکت اينتل، در سال 1965 پيش بينی کرده بود که تعداد ترانزيستورهای روی يک تراشه (با مساحت ثابت) هر دو سال يکبار دو برابر خواهد شد.
پردازنده های تازه اينتل که "پنرين" (Penryn) نامگذاری شده است بيش از 400 ميليون ترانزيستور را روی تراشه ای که مساحت آن نصف يک تمبر باشد جای می دهد.
پنرين مانند پردازنده های فعلی به صورت دو هسته ای (dual-core) يا چهار هسته ای (quad-core) عرضه خواهد شد که بدان معنی است که روی هر تراشه دو يا چهار پردازنده جداگانه قرار خواهد داشت. اينتل سرعت پردازنده جديد را اعلام نکرده است.
توليد تکنولوژی 45-نانومتری از زمان ساخت ترانزيستور 65 نانومتبری هدف تراشه سازان بوده است.
فلزات جديد
ترانزيستور يک کليد ساده الکترونيکی است. هر تراشه نيازمند تعداد خاصی ترانزيستور است و هرچه تعداد آنها بيشتر باشد، تراشه می تواند محاسبات بيشتری انجام دهد.
تراشه سازان برای بيش از 45 سال موفق شده اند با کوچک کردن تدريجی ترانزيستورها و جای دادن تعداد بيشتر و بيشتری از آنها روی هر تراشه، پاياپای قانون مور حرکت کنند.
با اين حال با گذر از مرز 65 نانومتری، سيليکونی که برای ساختن عناصر اساسی اين کليدها - موسوم به نارساناهای دروازه ای (gate dialectric) - به کار گرفته می شد ديگر به آن خوبی عمل نمی کنند.
در نتيجه جريان الکتريکی گذرنده از ترانزيستور نشت کرده و بازدهی تراشه را کم می کند.
برای جلوگيری از اين وضع، پژوهشگران مجبور به ساختن ماده تازه ای شده اند که بتواند جريان های الکتريکی در چنين ابعاد کوچکی را مهار کند. دسته تازه ای که جايگزين سيليکون شده است فلزات high-k نام دارد.
'بزرگترين تغيير'
گوردون مور توسعه و گنجاندن اين مواد به عنوان عناصر تراشه را "بزرگترين تغيير در فناوری ترانزيستور" از اواخر دهه 1960 توصيف کرده است.
نخستين تراشه های حاوی وسايل 45 نانومتری را شرکت اينتل اواخر سال گذشته به نمايش گذاشت، اما آنها هنوز در محصولات تجاری جای داده نشده بودند.
دکتر تزشيانگ چن، معاون علوم و تکنولوژی در مرکز تحقيقات آی بی ام گفت: "صنعت تراشه سازی تاکنون با يک مانع عمده برای جلو بردن تکنولوژی امروزی روبرو بود.... اما بعد از حدودا 10 سال تلاش، اکنون راهی به جلو يافته ايم."
شيوه دقيق ساخت فلزات high-k توسط اينتل و آی بی ام فاش نشده است اما نکته مهم آنکه هر دو شرکت گفته اند که می توان آن را با کمترين زحمت در فناوری محصولات فعلی جای داد.
تراشه ای که افکار انسان را می خواند
متيو نيگل، 25 ساله، در سال 2001 در يک حمله خيابانی از گردن به پايين فلج و به صندلی چرخدار محدود شد.
پزشکان تابستان گذشته در بيمارستان "نيوانگلند ساينای" در ماساچوست اين تراشه را در سر او کار گذاشتند که به او امکان داده است برخی وسايل خانه را با فکر کردن کنترل کند.
اين تراشه افکار او را می خواند و آنها را برای رمزگشايی به يک کامپيوتر می فرستد.
کنترل از راه دور
او به لطف اين دستگاه و نرم افزارهايی که به وسايل خانگی اش وصل شده است می تواند با فکر کردن تلويزيون را روشن و خاموش کند، کانال ها را عوض يا صدا را کم و زياد کند.
دانشمندان از سال ها قبل سرگرم طراحی و توسعه سيستمی بودند که به معلولان امکان دهد وسايل خانگی را با مغزشان کنترل کنند.
مطالعات نشان داده است که ميمون ها می توانند يک کامپيوتر را به کمک الکترودهايی که در مغزشان کاشته می شود کنترل کنند.
اخيرا چهار نفر، که دو نفر از آنها افراد نيمه معلول در صندلی چرخدار بودند، با به سر کردن کلاهی مجهز به 64 الکترود که امواج مغزی را دريافت می کرد، موفق شدند مکان نمای کامپيوتر (cursor) را حرکت دهند.
تراشه ای که برای آقای نيگل ساخته شده و "BrainGate" نام دارد شامل تقريبا 100 الکترود به باريکی موی سر است که در عمق يک ميليمتری بخشی از مغز که مسئول کنترل حرکت است، کار گذاشته شد.
پروفسور جان داناهيو، عصب شناس در دانشگاه براون در "رود آيلند" يکی از دانشمندانی است که در ساخت اين دستگاه که توليد شرکت "سايبرکينتيک" است دست داشته است.
وی می گويد: "صفحه کامپيوتری در واقع مثل يک دستگاه کنترل از راه دور تلويزيون است. کاربر تنها کافی است که مکان نما را (با فکر کردن) روی يکی از گزينه ها ببرد و اين معادل همان کليک کردن روی آن گزينه است."
آقای نيگل همچنين امکان يافته است با استفاده از افکارش يک بازوی خودکار و يک دست مصنوعی را برای برداشتن يک شيئ از دست شخصی ديگر و گذاشتن آن در دست يک شخص ثالث کنترل کند.
پروفسور داناهيو اميدوار است که پيوندهايی مانند اين در نهايت به افراد معلول امکان دهد بار ديگر بازوها و پاهايشان را به کار گيرند.
منبع : http://www.ict-khz.com
بزرگترین شطرنجباز دنیا از کامپیوتر شکست خورد

Deep Fritz،کامپیوتر مخصوصی که برای انجام مسابقات شطرنج طراحی شده است، رقیب خود ولادیمیر کرانیک(Vladimir Kramnik) یکی از شطرنجبازان مشهور جهان را طی شش مسابقه در آلمان شکست داد.
Web 2.0 در نسل جدید نرمافزارهای ERP

شرکت Workday که یکی از بزرگترین مراکز تولید نرمافزار un-ERP محسوب میشود، آخرین نسخه نرمافزار تجاری و مدیریتی خود را به ابزارهای Web 2.0 مجهز کرد.
منبع : http://www.ict-khz.com
Parallel and Distributed Processing Group -- GPPD
UFRGS - Universidade Federal do Rio Grande do Sul
Institute of Informatics
History
Parallel and Distributed Processing Group (GPPD) is a research group which has several projects concerning parallel and distributed processing. It is located within the Institut of Informatics, at UFRGS, Brazil. GPPD has started its history during 80's with the return of prof. Philippe Navaux from his doctorate in France. Initially, the research was focused on computer architectures, parallel processing and performance evaluation. With the return of prof. Claudio Geyer from Grenoble (France) in 1991, the group was named GPPD, integrating research topics redarding parallel and distributed processing. In 1995, with the conclusion of the Tiaraju Diverio's doctorate, the group has included research about high performance applications, parallel algorithms and computational complexity, as well as the creation of high performance processing courses and events.
The GPPD has always maintained close relations with French Universities and Laboratories through international cooperation projects. Joint researches originated from such projects made possible the doctorate of several researchers with master degree from UFRGS. Besides France, GPPD has nowadays copperations with several countries, such as Germany, United States, England, Spain and others.
During last years, the parallelism has been proposed as the main solution to increase computing systems performance. Several parallel machines based on new architectures have emerged on the market. However, in these architectures there are programming and management difficulties greater than those found in sequential machines. The XXI century has been marked by growing advance of cluster computing. This architecture is composed by simple machines interconnected through high performance network, allowing the assemblage of low cost systems that offer better computational power.
The complexity regarding development of distributed systems is a serious problem in those architectures usage. Sometimes, programmers must know some internal details about the operating system and its communication subsystem. Thus, parallel and distributed system development is a more complex task than sequential one and it can be simplified using adequate software tools.
GPPD considers solutions and alternatives from problems involved on parallel and distributed applications development. Following this idea, the group has different research approaches: heterogeneous network operating system (HetNOS project), parallelism and distribution exploration in logic programming (OPERA project), to foment and to develop cluster technologies (LabTec project), development of middleware for grid and mobile computing (ISAM project), web services-based Portal to unify the access to multiple clusters (JavaWSPad project).
Cluster and Grid computing
Image processing
Mobile and Ubiquitous Computing
Object-oriented distributed languages
Parallel and distributed algorithms
Parallel Prolog
Performance evaluation
Simultation and Games
Processor Architecture
Tools and environments for parallel and distributed programming
Visual debugging and programming
APSE - Superscalar Processor Architectures
DECK - Distributed Execution and Communication Environment (as part of MultiCluster project)
Direto - Advanced Systems for Email, Agenda and Catalog
Disperso - Distributed and Parallel Environments and Systems
DPC++ - Distributed Processing in C++ (as part of MultiCluster project)
MultiCluster - Support for Parallel Programming on Multiple Clustersمنبع : http://gppd.inf.ufrgs.br
Advancements in networking and cheaper computing technology have enabled the Internet to be used for resource sharing, instead of just document sharing. The resources can include computing, storage and network resources. The dynamic nature of the Internet in terms of node/network failures poses challenges for large scale resource sharing. Further, the resources are autonomic, implying that they may join or leave the system dynamically. Thus, solutions for Internet scale resource sharing must enable dynamic application dependability and middleware reconfigurability. This means that the underlying resource sharing middleware must ensure dependability of applications in spite of resource/network dynamics. Further, the middleware components themselves must adapt to these dynamics (middleware reconfigurability).
Peer-to-Peer (P2P) systems such as Gnutella, Freenet, Pastry etc. provide reconfigurability and scalability. However, these file sharing P2P systems may not be directly usable for sharing compute resources on the Internet. This is because they do not consider the proximity of resources or their capabilities. We explore the use of P2P system concepts to build a reconfigurable and scalable middleware for Internet scale resource sharing. In unstructured P2P systems such as Gnutella and Freenet, the overlay is built in an uncontrolled fashion, possibly with self-organizing behaviour. They provide flexibility for finding resources by supporting arbitrary queries for searching. They may be inefficient, as they use flooding for the search. Further, unstructured P2P systems cannot provide guarantees about finding the data. In contrast, structured P2P systems assign static identifiers to peers and impose a overlay structure based on the node identifier. A routing structure based on distributed data structures (Distributed Hash Table, as in Chord and Pastry) is also imposed. The structured P2P systems can provide data location guarantees and are efficient for searching (O(log(n)) time, for n nodes). However, they support only limited and exact matching queries.
We propose Vishwa, a two layered P2P middleware for resource sharing in the Internet. It is a scalable and dynamically reconfigurable middleware. It provides a dependable execution environment for grid applications. The task management layer of the middleware is responsible for initial task deployment on the best available under-utilized nodes as well as the runtime migration of tasks to handle load dynamics. The task management layer is realized as an unstructured P2P layer and allows logical resource clustering based on proximity. The unstructured overlay allows neighbour lists to be constructed based on application specific criteria, whereas in structured overlay, the neighbour lists are only based on node identifiers. Thus, the task management layer of Vishwa constructs the neighbour list based on resource capabilities. If you want to know more about Vishwa, please follow the link below for the presentation or try the Vishwa technical report on the publications page.
Slides:
Vishwa Vishwa Compared with Globus Toolkit
We have extended Vishwa to a data management platform named as Virat. Large amounts of scientific data are being produced, for instance see Grid Physics Project or the Compact Muon Solenoid (CMS). Distributed computations on this data must be scheduled. Hundreds to thousands of geographically distributed users need access to data for performing computation. So, there is a need to replicate the data at appropriate locations to handle node/network failures and minimize computation time and/or bandwidth. There must be ways of describing the data in the form of meta-data to allow geographically distributed access to the data. The meta-data must also be replicated for fault-tolerance. Thus, replica management of data as well as meta-data is important. There must also be efficient mechanism to search/query the data. Another important requirement in a data grid is the discovery of data/compute resources based on proximity and node capabilities. We have designed and developed Virat to address the above issues and the orthogonal non-functional properties of scalability and fault-tolerance.
A platform that can be used for building such generic services must address key issues such as scalability, middleware reconfigurability, dependability, replication and resource/data discovery mechanisms. Existing shared object spaces cannot be used directly as such a platform because they do not scale up. Inefficient mechanisms for handling failures and object lookups and the use of centralized components inhibit their scalability. Virat focuses on the integration of shared object spaces with Peer-to-Peer systems. Virat provides a shared object space abstraction over a wide area distributed system. It is built using a unique two-layered P2P architecture that combines the advantages of structured and unstructured P2P systems. The unstructured layer facilitates capability based neighbourhood formation and allows cluster-level replication of data (and meta-data) to handle failures and to maintain consistency. The structured layer allows failure data to be recovered even across zones/clusters in O(log(N)). Performance studies (over Intranet and WAN testbeds) using a prototype implementation suggests that Virat can scale to millions of objects. For more details on Virat please check the following slides or follow the publications link for Virat papers.
I think that one of the most exciting consequences of the rise of multicore is the possibility of overcoming the limitations of the WAN by processing where you collect your data. It is exceptionally difficult and/or expensive to move large amounts of data from one distant site to another regardless of the processing capability you might gain. Paul Wallis has an excellent discussion about the economics and other key issues that the business community faces with computing on "The Cloud" in his blog Keystones and Rivets.
So how do cores help us get passed the relatively high costs of the WAN? The first signs of this trend will be wherever significant amounts of data are collected out in the field. Currently you have a number of options, none of them great, for retrieving your data for processing. These include:
There never really was much consideration given to processing the data in situ because the computational power just was not there. Multicore processors have allowed us to rethink this.
For example, consider one of the most sought after goals in a hot industry: near-real time monitoring of a reservoir for oil-production and/or for CO2 sequestration. (see the Intelligent Oilfield, IPCC Special Report on Carbon dioxide Capture and Storage) The areas where this is most desired tend to be fairly remote such as offshore or in the middle of inhospitable deserts. There is no network connectivity to speak of to these areas let alone enough to move data from a large multi-component ocean-bottom seismic array like those found in the North Sea.
Consequently, a colleague of mine and I were tasked with how we might implement the company’s processing pipelines in the field. Instead of processing the data using hundreds of processors and an equivalent number of terabytes of storage everything needed to fit on ***maybe*** as much as a single computer rack. Our proposal had to include power conditioning and backup, storage, processing nodes, management nodes (e.g. resource managers), as well as nodes for user interaction. Electrical circuit size limitations also limited our choices. Needless to say, 30-60 processors just was not enough capacity to seamlessly transition the algorithms from our primary data center. The only way it could be done was by developing highly specialized processing techniques: a task which could take years.
Now that we are looking at 8 cores per processor with 16 just around the corner everything has changed. Soon, it will be possible to provision anywhere from 160-320 processors under the same constraints as before. It is easy to imagine another doubling of this shortly thereafter. Throw in some virtualization for a more nimble environment and we will be able to do sophisticated processing of data in the field. In fact, high-quality and timely results could alleviate much of the demand for more intensive processing after the fact.
Who needs the WAN and all of its inherent costs and risks? Why pay for expensive connectivity when you could have small clusters with hundreds of processors available in every LAN? If remote processing becomes commonplace because of multicore, we might see the business community gravitate towards the original vision of the Grid.
منبع : http://gridgurus.typepad.com
This is a repost of a reply I wrote to a LinkedIn question
Mark Mathson gave a great answer and blog link in his reply, but it's worth going down one additional level of detail.
A cloud is operated by something. That something is software and people need to be able to interoperate with that software. So the question is twofold.
1) What does that software do.
2) What does the interaction model look like.
Part one is mostly undefined. The term cloud computing is only a few months old at this point and there is no definition that I've seen that describes in detail what the services are and how they work. Since cloud computing is a subset of grid computing we can make some educated guesses as to how this will turn out.
o There will have to be a security model. This model will be complex enough that I'm calling out additional specifics. Currently there is no model specified in any definition of cloud computing.
o That model includes delegation. In the early development of the grid we had a security model without delegation and it was a non-starter. Anytime you need to request something of a service you need to delegate authority to that service.
o That model will have to be multi-institutional. By this I mean that the model must allow people from different communities to be able to access the resources within the cloud without having to join a common security domain. The owner of the resources will have to be able to make local decisions about who is allowed to use his resources.
o Monitoring will be complex, but must run on a common backplane. In the grid community we have hierarchical, distributed monitoring that allows canonical services and a variety of applications to push monitoring information upstream to consumers. No definition of cloud computing currently has any monitoring specification.
o Data handling will be a challenge. In the grid community we discovered early on that moving data between facilities was a bottleneck due to some decisions made in developing TCP decades ago. We worked around these to develop protocols that move data at near theoretical maximum rates even in WAN environments. We also found that people who want to move a lot of data find it cumbersome to manage the processes to do that themselves. We developed 'fire and forget' mechanisms to moving data. A user can make a request, walk away and check the results the next day. As a side note, this behavior requires delegation to work in a secure fashion.
All of the above have to be dealt with before one even begins to contemplate the VM issues that seem to dominate the cloud computing discussions.
The second part is about how the user will interact. That one is much more trivial to answer. Our users already interact in a variety of ways. Some examples include browsers, native applications, java applications, remote desktops and display technologies like x-windows.
All of those will continue to be in play in a cloud based architecture because each has significant structural, administrative and performance advantages that have led to their survival for a long time.
The cloud won't be about what window a user interacts with, it will be about the plumbing that makes that window useful.
منبع : http://gridgurus.typepad.com
The open source justification is no longer the new path that few organizations have walked. I remember in the mid-90's when I switched from Solaris x86 to BSD and then to linux trying to explain what I was doing to co-workers. At that point I wasn't even trying to justify a decision to migrate some production machines, I was just exploring alternatives on my workstations. Still, I got far more confusion and skepticism then nods of understanding.
Today the world is different. People use open source for a wide variety of things. Most folks understand the landscape and regularly use total cost of ownership and risk mitigation as important parts of their final decision. What's still missing, in some cases, is the ability to take advantage of a unique opportunity that open source give you at an infrastructure layer.
Grid software is fundamentally concerned with managing very complex business needs in a manner that allows humans to understand what is going on with their systems. As such one of the most important aspects is the ability to integrate that infrastructure with applications in a manner that allows developers and system integrators to present simpler interfaces to their users.
With proprietary systems there are often APIs that allow this to be done. However, in no instance that I've seen are these APIs on the 'critical path' for the company making the software. They are always offered essentially as a patch that some powerful customer needed and now is slowly leaking out to the rest of the customer base. These systems also tend to be highly unstable and each version carries changes in the API. These changes are frequently radical and nearly always undocumented until a customer comes across something that has stopped working and raises a stink with the vendor.
Open source software tends to work differently, especially at an infrastructure layer. The components are built by folks who are 'eating their own home cooking' and understand the implications of a change in interface. As such, they tend to be infrequent and, when they do occur, highly justifiable. The reduction in quantity of changes is helpful, but because there is no vendor forcing an upgrade, the fact that you can adopt a new version when the timing is right for your organization is also a big plus.
The world has changed. And it's changed for the better for data center managers globally.
منبع : http://gridgurus.typepad.com
|
|
|
|
Quick links to GridLab Workpackages:
TB WP1 WP2 WP3 WP4 WP5 WP6 WP7 WP8 WP9 WP10 WP11 WP12 WP13
منبع : http://www.gridlab.org
Access for Mobile Users |
|
|
Small and flexible mobile devices are increasingly used for web access to various remote resources. This working package wants to provide grid access mechanisms for such devices. This requires adaption of existing access technologies like portals for low bandwidth connectivity and low level end user hardware. The mobile nature of such devices also requires flexible session management and data synchronization. This work package will enhance the scope of present grid environments to the emerging mobile domain. Utilizing the new higher bandwidth mobile interconnects, very useful and previously impossible scenarios of distributed and collaborative computing can be realized.

The main goal of our efforts is to give the Grid users a possibility to access their applications and resources from any place using mobile devices. According to our approach the devices are incorporated only as the clients of Grid services (not peers). Moreover, because of limitations of mobile devices this approach assumes adopting a gateway between the client and the Grid. These limitations forced us to pay special attention to build flexible user interfaces as well.
We developed (or co-developed) also several specialized mobile-oriented Grid services. In some cases we provided only a mobile wrap-up of the heavyweight Grid services placed in the gateway. Some of them are build from the scratch as a specialised mobile service.
Our mobile client is tighty coupled with the gateway. This "connection" means that features in the mobile client are mapped to corresponding plugins in the gateway. Those plugins are responsible for interacting with Grid services in the name of the mobile client.
The below schema presents our approach: we give mobile users access to Grid services via gateway. The mobile client running on a mobile device together with the gateway make up the Minimal Grid Interface.

جواب دادن به اين سؤال كمي پيچيده است. تا حدودي ميتوان گفت كه با يك <مفهوم> سر و كار داريم؛ مفهومي به نام <ميانافزار>؛ موجوديتي كه نه سختافزار است نه كاملاً ميتوان آن را نرمافزار دانست. بهتر است كمي بيشتر توضيح دهيم. براي مديريت هر سختافزاري يا بهتر بگوييم براي استفاده بهينه از امكانات سختافزاري، نيازمند يك سيستم مديريتي هستيم كه توانايي مديريت و زمانبندي اجرا و كنترل فرآيندها و پردازشها را داشته باشد. در مدلهاي پيشرفته (مانند انواع كامپيوتر، برخي از مدلهاي گوشي موبايل و انواع Handheld) نام اين سيستم مديريتي سيستمعامل و در مدلهاي سادهتر (مانند انواع پخشكننده MP۳، انواع ساده گوشي موبايل همانند نوكيا ۱۱۰۰ و انواع سادهتر و دستگاههاي سادهتر مانند انواع رايتر) نام آن Firmware يا به فارسي، ميانافزار است.
در انواع پيشرفته، كار ميانافزار ترجمهِ دستورات نرمافزاري به زبان قابل فهم براي سختافزار و در انواع سادهتر، مثلاً در يك پخشكننده MP۳، تفسير فرامين صادر شده از طريق دكمه و درخواست اجراي فرمان مورد نظر از سيستم يا مدارات موجود در دستگاه است.
محل دقيق ميانافزار كمي بالاتر از سختافزار است. در واقع ميتوان اظهار داشت كه اولين نرمافزار مرتبط ( يا حتي تنها نرمافزار) با سختافزار، ميانافزار است. برنامهنويسان ميدانند كه محل قرارگيري ميانافزار، دقيقاً پايينتر از اسمبلر است.
ميانافزارها را در كارگاه يا كارخانه به وسيله دستگاههايي به نام Emulator در حافظههاي قابل برنامهريزي و فقط خواندني موسوم به Programable Read- Only Memory) PROM) قرار ميدهند. در واقع اين حافظهها را به وسيله Emulator برنامهريزي ميكنند. يك نمونه از انواع اين حافظهها همان بايوس كامپيوتر است كه ميانافزاري را (همان تنظيمات بايوس) نيز اجرا ميكند. محتويات اين حافظهها نيز ايستا است و پس از خاموش شدن دستگاه به اطلاعات موجود در آنها صدمهاي وارد نميآيد.
گاهي ممكن است در زمان طراحي و توليد اين ميان نرمافزارها (كه در مرحله طراحي و توليد گهگاه به اندازه يك برنامه سنگين محاسباتي زمانبر هستند) مشكلاتي به وجود آيد كه تنها در زمان عملكرد مشخص شوند. از اين رو توليدكنندگان سختافزار مرتباً به بررسي ميانافزارهاي نصب شده اقدام ميكنند و در صورت وجود خطا يا ايراد نرمافزاري، اقدام به برطرف نمودن آن ايراد ميكنند و نسخه بروز شده آن ميانافزار را منتشر ميسازند. از اين رو بروزرساني ميانافزار سختافزارهاي نصب شده در كامپيوترمان، گوشي موبايلمان، پخشكننده MP۳ و دستگاههاي سختافزاري كه كنترل شبهنرمافزاري دارند، كاري عاقلانه و سنجيده است.
توجه
در استفاده از دستورالعملهاي ارائه شده نهايت دقت را به كار ببريد.
عصر شبكه هيچگونه مسئوليتي را در خصوص وارد آمدن صدمه و خسارت به دستگاه شما نميپذيرد.
رايتر شما چه CD Writer باشد، چه DVD Writer، فارغ از نوع، مدل و نشان تجاري دستگاه، داراي يك Firmwareاست. مانند تمام نرمافزارها، Firmware نيز مرتباً از سوي سازنده ارتقا پيدا ميكند. دليل اين كار نيز كاملاً مشخص است؛ برطرف كردن مشكلات و نواقصي كه در زمان طراحي يا توليد و اجراي آن بهوجود ميآيند.
اين مشكلات ممكن است در مراحل اوليه طراحي و توليد خود را نشان ندهند. معمولاً پس از اجراي نرمافزار، نمايش انواع باگها و مشكلات منطقي و غيرمنطقي شروع ميشود و شبهاي بهيادماندنياي را براي تيم طراحي به يادگار خواهد گذاشت. از اينرو هر توليدكنندهاي براي اينكه ضمن حفظ اعتبار خود مشكلاتي را كه ممكن است در زمان استفاده توسط كاربر تشخيص داده شوند، برطرف سازد، اقدام به تهيه نسخههاي بهبود يافته Firmware دستگاههاي توليدي خود مينمايد.
توجه داشته باشيد كه ممكن است در زمان استفاده از درايو نوري خود، هرگز متوجه مشكلات موجود نشويد، اما مطمئن باشيد اگر با روشي كه در ادامه معرفي خواهد شد، آگاهي يافتيد كه Firmware بروز شدهاي از سوي توليد كننده ارائه شده است، به طور حتم مشكل يا مشكلاتي در Firmware دستگاه وجود دارد. بنابراين ميتوانيد اقدام به بروزكردن دستگاهتان كنيد.
مراحل كار
اول از همه بايد نوع و مدل درايو موجود را تشخيص دهيد. براي اينكار بهتر است از خود ويندوز كمك بگيريد. البته نرمافزارهايي هم وجود دارند كه به بررسي سختافزارهاي نصب شده روي كامپيوتر ميپردازند و نشان تجاري، مدل و اطلاعات مختلفي از جمله نگارش و مدل Firmware هر دستگاه را به شما ارائه ميدهند.
از قسمت System Properties تب Hardware را انتخاب نماييد و روي دكمه Device Manager كليك كنيد. روي علامت (+) عبارت DVD/CD-ROM Drives كليك كنيد. فهرست درايوهاي نوري موجود روي كامپيوترتان را مشاهده خواهيد كرد. در اين فهرست نام هر دستگاه به همراه مدل آن آورده شده است. به عنوان مثال، به چنين عبارتي برخورد خواهيد كرد:
SONY DVD RW DRU-۸۲۰۸A
اين عبارت علاوه بر نام توليدكننده، نوع و مدل دستگاه را نيز نمايش ميدهد. اگر از اين روش لذت نميبريد، ميتوانيد از Nero كمك بگيريد. در مجموعه نرمافزاري Nero، برنامهاي به نام Nero Info Tool وجود دارد كه از همان ابزارهايي است كه تمام زيروبمهاي موجود و مرتبط با درايوهاي نوري را بررسي ميكند. مزيت استفاده از اين ابزار ايناست كه نگارش Firmware درايو را نيز نمايش ميدهد.
پس از اينكه اطلاعات مورد نظر را استخراج كرديد، به اينترنت متصل شويد و در موتور جستوجوي گوگل، از كليدواژه تركيبي زير براي يافتن فايل مورد نظر استفاده كنيد:
Properties + Firmware + Download&Your Drive name
در عبارت بالا به جاي Your Drive name & Properties نام و مدل دستگاهتان را كه در مرحله قبل استخراج كرديد، بنويسيد. به عنوان مثال، من براي DVD Writer خود بايد چنين واژهاي را جستوجو كنم:
SONY DVD RW DRU-۸۲۰A + Firmware + Download
توجه كنيد كه تنها قسمت اول را تغيير دهيد. با اينكار (استفاده از اين كليدواژه) گوگل در سايتهايي جستوجو خواهد كرد كه حاوي لينكهايي به منابعي هستند كه شامل آن سه كليد واژه ذكر شده ميگردند. مطمئن باشيد كه اولين يا دومين هينت (نتيجه يك جستوجو در يك موتور جستوجو، تعدادي هينت يا تطابق است كه به صورت فهرست شده نمايش داده ميشوند) شما را به هدف خواهد رساند.
معمولاً تمام تلاشهاي ما سرانجام به دانلود يك فايل چندصد كيلوبايتي منتهي خواهد شد. توجه داشته باشيد كه علاوه بر خود توليد كننده، شركتها و حتي اشخاص ديگري نيز اقدام به تهيه Firmware براي دستگاهها مينمايند. بر اساس تجربه بهتر است از نسخهاي استفاده كنيد كه توسط خود سازنده ارائه شده است.
پس از اينكه فايل يا فايلها را دانلود كرديد، زماني فرا ميرسد كه بايد مهمترين و شايد خطرناكترين قسمت كار را انجام دهيد. در اين مرحله بايد يك فايل اجرايي را اجرا كنيد تا روند آپديتكردن بايوس به صورت خودكار طي شود. البته قبل از انجام هركاري، روشي را كه سازنده اعلام كرده است، به دقت مطالعه كنيد. ممكن است براي اين كار لازم باشد تغييراتي را به صورت موقت در آرايش سختافزاري كامپيوترتان اعمال كنيد. ممكن است نياز باشد زماني كه شما دو درايو را به يك كابل متصل كردهايد، يكي را از كابل موقتاً جدا نماييد و پس از آپديت شدن بايوس درايو مورد نظرتان، دوباره درايو ديگر را به كابل متصل كنيد.
با اين حال قدر مسلم اين است كه دقت داشته باشيد فارغ از نوع و مدل دستگاه، زماني كه برنامه مشغول آپديت كردن بايوس درايوتان است (كه مدت زمان اندكي است) هرگز برنامههاي ديگري را اجرا نكنيد. قبل از اجرا، اتصال به اينترنت خود را قطع نماييد و برنامه آنتيويروس خود را نيز غيرفعال كنيد. همچنين هر نوع CD و يا DVD را از درايو خارج كنيد.
دقت كنيد كه ممكن است در طي اين زمان چراغ يا چراغهاي روي درايو روشن شوند يا چشمك بزنند. اين عمل غير عادي نيست. تعجب نكنيد و هرگز اقدام به باز كردن درِ درايو نكنيد. همچنين سعي كنيد برق كامپيوتر قطع نشود! چون ممكن است مجبور شويد درايو را براي تعمير به گارانتي بفرستيد يا در بدترين شكل ممكن، مجلس ختمي براي درايو محبوبتان برگزار كنيد.
اما از هيچ چيز نترسيد. شخصاً بارها اينكار را انجام دادهام و حتي درايوهاي دوستان و آشنايان را نيز از اين آزمايشها گذراندهام. خيالتان راحت باشد. اين كار را اگر بر اساس روشي كه از سوي توليدكننده ارائه شده است انجام دهيد، هيچ مشكلي براي درايوتان به وجود نخواهد آمد.
پس از اينكه Firmware درايوتان را آپديت كرديد، مطمئناً درايوتان بيعيب و نقصتر از گذشته كار خواهد كرد، اما انتظار نداشته باشيد كه فرآيند رايت كردن اطلاعات با سرعت بيشتري انجام شود يا سختافزار دستگاهتان تغيير كند. اما مطمئنا خطاهاي كمتري در زمان خواندن و نوشتن انواع ديسكها بروز خواهد نمود.
راديو آلمان: سريعترين ابررايانه براي اهداف غير نظامي وارد شبكه شد
پايگاه اينترنتي راديو "دويچه وله" نوشت:سريعترين ابر رايانه براي اهداف غير نظامي به ارزش ۱۵ميليون يورو بهطور رسمي وارد شبكه آلمان شد.
به گزارش اين پايگاه اينترنتي، "توماس ليپرت" رئيس مركز رايانهاي يوليش اعلام كرد: در فهرست برترين ابررايانهها، يوجين سريعترين ابر رايانهاي است كه براي اهداف غير نظامي مورد استفاده قرار ميگيرد.
سريعترين ابررايانهي جهان با نام "يوجين" كه براي اهداف غيرنظامي ساخته شده است پنجشنبه گذشته در مركز تحقيقاتي يوليش در نزديكي شهر كلن آلمان، كار خود را بهطور رسمي آغاز كرد.
اين منبع گزارش كرد: "ابررايانهي مركز تحقيقات هستهاي ايالات متحدهي آمريكا در فلوريدا كه كاربرد نظامي دارد، تنها ابررايانهاي است كه از يوجين سريعتر است.
كيس يوجين بزرگتر از آن است كه زير يك ميز كار جا بگيرد. اين ابررايانه كه ابعاد آنهم برازندهي نامش است، از ۶۵هزار پردازنده تشكيل شده است و اين پردازندهها در ۱۶محفظه قرار داده شدهاند كه هر محفظه به بزرگي يك كيوسك تلفن عمومي است.
يوجين به همراه يومپ و يوبل، دو ابررايانهي ديگر مركز تحقيقاتي يوليش، در يك سالن بزرگ جاي گرفته است.
بازديدكنندگان از اين سالن بايد گوشي روي گوشهاي خود بگذارند زيرا تعداد زيادي دستگاه تهويه و دمنده در اين سالن، هوا را در قفسهها تهويه ميكنند.
هر محفظه در حدود ۳۰كيلووات گرما توليد ميكند، دستگاههاي تهويه دائم كار ميكنند تا دماي ۱۶درجهي سانتيگراد را براي يوجين فراهم كنند، اين دما، دمايي است كه اين ابر رايانه بهترين بازده را در آن دارد.
يوجين قادر است در هر ثانيه ۲۲۳هزار ميليارد محاسبه انجام دهد، رقمي غير قابل تصور كه معادل سرعت محاسبهي ۲۰هزار رايانه است.
ميتوان اينطور تصور كرد كه هر كدام از هفت ميليارد نفر جمعيت كرهيزمين در يك ثانيه و بهطور همزمان، ۳۰هزار محاسبهي رياضي را انجام دهند.
البته اين محاسبه بهطور حتم ۱+۱نخواهد بود بلكه محاسبات پيچيدهتر اعشاري يا چيزي شبيه آن. چنين بازدهي بدون شك از توان يك پردازنده خارج است.
در يوجين هر پردازنده، يك بخش از كار را انجام ميدهد، بههمين دليل مهمترين نكته در يك ابررايانه اين است كه شبكهاي منسجم بتواند نتيجهي محاسبات پردازندهها را بهصورت يك خروجي ارائه دهد.
شبكهي ارتباطي بين پردازشگرها بايد پايدار و بسيار سريع باشد تا بتواند دادهها را دائم از يك پردازنده به ديگري منتقل كند.
از اين پس حدود ۲۰۰گروه تحقيقاتي آلماني و اروپايي ميتوانند در پروژههاي خود روي كمك يوجين حساب كنند.
يك هيئت نظارت مستقل تصميم ميگيرد كه كدام پروژه اولويت دارد.
شبيهسازيهاي رايانهاي اكنون مدتهاست كه در كنار نظريه و آزمايش، ركن سوم دانش را تشكيل ميدهند.
يكي از كارشناساني كه پاياننامهي دكتري خود را در مركز محاسبات يوليش مينويسد، معتقد است: وقتي دارويي توليد ميشود، آزمايشهاي بيشماري بايد روي آن صورت گيرد تا وارد بازار شود.
انجام اين آزمايشها در دنياي واقعي، هزينهي بسيار هنگفتي در بر خواهد داشت، بدين ترتيب با شبيهسازيهاي رايانهاي دستكم مشخص ميشود كه كار در چه جهتي پيش ميرود.
وي در مثال ديگري ادامه ميدهد: زمانيكه يك ستارهشناس نياز به يك آزمايش دارد، آوردن يك ستاره، روي ميز كار آزمايشگاه فيزيك، براي او بسيار بسيار گران تمام خواهد شد، وانگهي اينكار ميلياردها سال نيز طول خواهد كشيد.
بههمين خاطر آزمايشهاي رايانهاي از اهميت خاصي برخوردارند.
كارشناس ديگري در حال انجام آزمايشي در زمينهي فيزيك كوانتوم است. وي و همكارانش در حال بررسي قويترين نيروي طبيعت هستند.
نيروي قدرتمند هستهي اتم كه كوارك را به نوترون يا پروتون پيوند ميدهد و آنها را در هستهي اتم نگه ميدارد.
آزمايش در اين زمينه، در آزمايشگاه و با روشهاي موجود، قابل انجام نيست. جاييكه فيزيك از پاسخ باز مانده است، رايانه تنها راهحل موجود بهنظر ميرسد.
مدير موسسهي يوليش، مزيت اصل اين ابررايانه را در مقايسه با همنوعان خود، صرفهجويي قابل توجه در مصرف انرژي در برابر توانايي آن در محاسبه ميداند. او از اين نظر يوجين را يك ابر رايانهي سبز ميداند.
اينكه آيا يوجين جايگاه ممتاز خود را در ميان ابررايانههاي ديگر طولانيمدت حفظ خواهد كرد، جاي سوال است.
هماكنون مهمترين رقيب يوجين، "رنجر" ، ابررايانهي دانشگاه تگزاس آمريكا است كه به زودي كار خود را آغاز خواهد كرد.
به گفتهي يكي از مديران موسسهي يوليش، هر سال دو بار ليست ۵۰۰ ابررايانهي برتر دنيا منتشر ميشود كه در طول سالهاي اخير هر بار همواره ۲۵۰تا ۳۰۰رايانهي جديد وارد ليست شدهاند.
بنابراين نبايد از آمدن رايانهي سريعتري تعجب كرد."
SRB – The SDSC Storage Resource Broker – supports shared collections that can be distributed across multiple organizations and heterogeneous storage systems. The SRB can be used as a Data Grid Management System (DGMS) that provides a hierarchical logical namespace to manage the organization of data (usually files).
The SRB software infrastructure can be used to enable Distributed Logical File Systems, Distributed Digital Libraries, Distributed Persistent Archives, and Virtual Object Ring Buffers. The most common usage of SRB is as a Distributed Logical File System (a synergy of database system concepts and file systems concepts) that provides a powerful solution to manage multi-organizational file system namespaces.
SRB presents the user with a single file hierarchy for data distributed across multiple storage systems. It has features to support the management, collaboration, controlled sharing, publication, replication, transfer, and preservation of distributed data. The SRB system is middleware in the sense that it is built on top of other major software packages (file systems, archives, real-time data sources, relational database management systems, etc). The SRB has callable library functions that can be utilized by higher level software. However, it is more complete than many middleware software systems as it implements a comprehensive distributed data management environment, including end-user client applications ranging from Web browsers to Java class libraries to Perl and Python load libraries.
منبع : http://www.sdsc.edu/srb/index.php/Main_Page
OGSA-DAI components are either data access components or data integration components. A Distributed Query Processing (DQP) system is an example of a data integration component and can potentially provide effective declarative support for service orchestration as well as data integration. The service-based DQP framework described in [1],[2] provides an approach that:
The service-based DQP framework consists of the following two services:
Grid Distributed Query Service (Coordinator). The Grid Distributed Query Service (GDQS), or coordinator, is the main interaction point for the clients. When a coordinator is set up, it obtains the metadata and computational resource information that it needs to compile, optimise, partition and schedule distributed query execution plans over multiple execution nodes in the Grid. The implementation of the coordinator builds on a previous work on the Polar* distributed query processor for the Grid [3],[4] by encapsulating its compilation and optimisation functionality. The coordinator is currently implemented as a set of OGSA-DAI data service resources and activities.
As well as using the services provided by OGSA-DAI data services, the coordinator is itself implemented as an OGSA-DAI data service, and thus can be discovered and invoked in the same way as other OGSA-DAI data services. Consequently, the Grid stands to benefit from OGSA-DQP, through the provision of facilities for declarative request formulation that complement existing approaches to service orchestration, via uniform interfaces and interaction semantics.
Figure 1 provides an overview of the interactions during the instantiation and set-up of a OGSA-DQP coordinator as well as those that take place when a query is received and processed via a set of evaluators. The components in this figure and the numbered interactions between each component are now described. The 3-dot sequence in this figure can, as usual, be read as `and so on, up to'. This description of OGSA-DQP is intended to give a high level overview of the system.

1: An OGSA-DQP coordinator consists of two types of OGSA-DAI data service resources: GDQS factory data service resources and GDQS data service resources. Initially, an installed coordinator service will expose only a GDQS factory data service resource. This data service resource is then used to create GDQS data service resources which can be used by a client to execute queries.
In this first step in the interaction between a client and OGSA-DQP, the client uses a deployed GDQS factory data service resource to create a configured GDQS data service resource. The client interacts with the GDQS factory data service resource by sending an OGSA-DAI perform document which specifies that a DQPFactory activity should be executed. The DQPFactory activity is able to interact with a GDQS factory data service resource in order to dynamically deploy a GDQS data service resource. The DQPFactory activity is parameterised by an XML document which specifies exactly how the deployed GDQS data service resource should be configured. Configuration parameters include the databases and evaluators which can be utilised by the data service resource which is to be created. The result of this interaction is that a GDQS data service resource is created and initialised. The coordinator service now exposes this dynamically deployed GDQS data service resource and it is automatically assigned a resource ID by OGSA-DAI.
2: During the initialisation of the GDQS data service resource, the schemas of the databases it will use are imported by contacting the OGSA-DAI data services which wrap these databases.
3: The client receives the result of the perform document submitted in step 1. This result contains the resource ID needed by the client to identify the created GDQS data service resource in subsequent interactions with this data service resource.
[Note] steps 1-3 need not take place if a GDQS data service resource already exists which imports the databases and analysis services required by a client (if this is the case, the client should contact the existing GDQS data service resource directly). Each GDQS data service resource is able to process multiple concurrent queries and the GDQS data service resource is not terminated by a client following a query session. Steps 1-3 represent a setup process which is necessary to configure a GDQS data service resource for use by one or more clients.
4: The client submits a perform document containing a query. Queries are written in OQL and are executed by the OQLQueryStatement activity. The GDQS data service resource uses the Polar* query compiler to parse, optimise and schedule the query. A query plan is created, consisting of a number of partitions. Each partition specifies an individual evaluator's role in the query plan.
5: Query partitions are sent to the relevant evaluator services.
6: Some evaluators interact directly with OGSA-DAI data service to obtain data.
7: Other evaluators may interact with other evaluators to implement their role in the execution of the query.
8 - 9: Results propagate back from the evaluators to the coordinator and eventually back to the client.
[Note] OGSA-DQP is also able to invoke Web services from within queries. This is not illustrated in Figure 1 in order to preserve the clarity of the figure and its associated description. Also omitted from the figure are the resource properties made available by the GDQS data service resource. Following initialisation, the GDQS data service resource provides a resource property enabling the client to obtain a description of the database schemas imported by OGSA-DQP.
[1] M. N. Alpdemir, A. Mukherjee, N.W. Paton, P.Watson, A. A. Fernandes, A. Gounaris, and J. Smith. Service-based distributed querying on the grid. In the Proceedings of the First International Conference on Service Oriented Computing, pages 467-482. Springer, 15-18 December 2003.
[2] M.Nedim Alpdemir, Arijit Mukherjee, Norman W. Paton, Paul Watson, Alvaro A.A. Fernandes, Anastasios Gounaris, and Jim Smith. OGSA-DQP: A service-based distributed query processor for the Grid. In Simon J. Cox, editor, Proceedings of UK e-Science All Hands Meeting Nottingham. EPSRC, 24 September 2003.
[3] J. Smith, A. Gounaris, P. Watson, N. W. Paton, A. A. A. Fernandes, and R. Sakellariou. Distributed Query Processing on the Grid. In Proc. Grid Computing 2002, pages 279-290. Springer, LNCS 2536, 2002.
[4] J. Smith, A. Gounaris, P. Watson, N. W. Paton, A. A. A. Fernandes, R. Sakellariou, Distributed Query Processing on the Grid, Intl. J. High Performance Computing Applications, Vol 17, No 4, 353-368, 2003 (Extended Version of Grid 2002 paper selected for publication in special issue).
منبع : http://www.ogsadai.org.uk/about/ogsa-dqp
Sun Expands Grid Application Offerings
February 19, 2008
By Paul Shread
Sun Microsystems has added 14 new applications to its Network.com Application Catalog of online grid-enabled applications available from the Sun Grid compute utility service on a pay-per-use basis.
Sun also launched a new partner program, Sun Network.com Connection, for independent software vendors (ISVs) to create on-demand service offerings at lower risk and cost, with access to new sales channels. Sun also added the Netherlands to the list of 25 countries where the services can be utilized.
The latest additions bring the grid service's total number of "Click and Run" applications to 39.
Mark Herring, Sun's senior director of software marketing, said Network.com "is evolving into a virtual on-demand data center that allows businesses of any size to leverage compute infrastructure without the cost of ownership and with the flexibility of scaling up or down compute resources in real time as business demands change."
The latest applications include Blender, open source tools for modeling, rendering, animation, post-production, creation and playback of interactive 3D content. Sun is sponsoring Blender Foundation's open movie "Peach," a short 3D animation by artists and developers in the Blender community, with grants of CPU hours in Network.com.
Other new open source applications include Zeus (a life sciences application), GAP (a computational mathematics application) and OOFEM (a computer aided engineering application).
In addition to the Solaris 10-based grid platform, Network.com provides developers and open source communities with tools, resources and an active grid developer community that helps them build and test on-demand applications.
Sun's Network.com provides access to compute infrastructure on a pay-per-use basis via its Sun Grid compute utility at $1 per CPU hour. منبع : http://www.gridcomputingplanet.com
سیستم های مبتنی بر پردازندههای 4 هسته ای
پردازندههاي 4 هسته اي
شركت اينتل اولين پردازنده چهار هسته اي خود را در اواخر سال گذشته ميلادي معرفي كرد. واقعاً هدف اينتل از معرفي اين محصول جديد چيست؟
شما در ماههاي آينده اولين بازيهاي كامپيوتري كه توانايي استفاده از 4 هسته را دارند مشاهده خواهيد كرد. بازيهاي نظير RTS, Supreme Commander, Half-Life 2 Episode 2, Unreal Tournament 2007و Crysis كه در سال 2007 معرفي خواهند شد قادرند از تمامي تواناييهاي يك پردازنده 4 هسته اي استفاده كنند. علاوه بر بازيهاي كامپيوتري برخي از برنامههاي صوتي و تصويري و برنامههاي كه تصاوير سه بعدي را خلق ميكنند نيز نظير Adboe Premiere Pro 3.0 Pinnacle Studio 10 , و 3D Studio Max 8/9 نياز به پردازندههاي چند هسته اي دارند.
CPU جديد، هسته قبلي
پردازندههاي 4 هسته اي حال حاضر اينتل مبتني بر هسته جديدي بنام Kentsfield هستند كه نخستين بار توسط اينتل در پردازنده Core 2 Extreme QX6700 بكار گرفته شد. هسته Kentsfield در حقيقت از دو هسته Conroe كه در يك بستهبندي قرار گرفته، تشكيل شده است.
با توجه به اين موضوع و همانطور كه از نام پردازنده Core 2 Quad Q6600 مشخص است، اين پردازنده از دو پردازنده Core 2 Duo 6600 تشكيل شده است و پردازنده Core 2 Extreme QX6700 شامل دو پردازنده Core 2 Duo E6700 است. بنابراين Core 2 Quad Q6600 داراي فركانس 2/4 گيگاهرتز و Core 2 Extreme QX6700 داراي فركانس 2/66 گيگاهرتز است. هر دوي اين پردازندهها از FSB 1066 مگاهرتز و حافظه نهان سطح 2 مگابايت (2 عدد كش 4 مگابايتي) استفاده ميكنند.
در آزمايشات انجام گرفته روي پردازندههاي چهار هسته اي، در برخي از بازيها پردازندهي چهار هسته اي QX6700 كارايي دو برابر سريعتر از پردازنده Core 2 Duo E6700 از خود به نمايش گذاشته است و در چندين آزمايش نيز كارايي دو برابر پردازنده Core 2 Extreme X6800 ارايه كرده است.
![]() |
![]() |
پردازندههاي 4 هسته اي داراي مصرف برق متفاوتي نسبت به پردازندههاي دو هسته اي هستند. اين توان متفاوت موجب شده تا اكثر مادربردهاي كه از پردازندههاي Core 2 Duo پشتيباني ميكنند قادر به پشتيباني از پردازندههاي چهار هسته اي نباشند. بنابراين اگر قصد خريد پردازنده 4 هسته اي داريد و يا اگر به فكر ارتقا پردازنده سيستمتان در آينده هستيد حتماً در هنگام خريد مادربرد به قابليت پشتيباني از پردازندههاي 4 هسته اي آن توجه كنيد.
شركت گيگابايت يكي از چند سازنده مطرح مادربرد است كه در حال حاضر محدوده وسيعي از مادربردهايي را كه قادرند تا از پردازندههاي 4 هسته اي پشتيباني كنند معرفي كرده است.
از بين مادربردهاي موجود در اين ليست مادربرد 965P-DQ6 قادر است از پردازندههاي 4 هسته اي آينده اينتل نيز پشتيباني كند. اين مادربرد از چيپست 965P اينتل استفاده كرده و داراي خازنهاي حالت جامد است. اگر به مادربردهاي موجود در ليست بالا دقت كنيد متوجه خواهيد شد كه تمامي مادربردهاي موجود در اين ليست بجاي خازنهاي الكتروليتي از خازنهاي حالت جامد استفاده كردهاند.
منبع : http://www.avajang.com
TOP500 lists computers ranked by their performance on the LINPACK Benchmark. It is clear that no single number can reflect the performance of a computer. Linpack is, however, a representative benchmark to evaluate computing platforms as High Performance Computing (HPC) environments, that is in the dedicated execution of a single tightly coupled parallel application. On the other hand, an HTC application comprises the execution of a set of independent tasks, each of which usually performs the same calculation over a subset of parameter values. Although, the HTC model is widely used in Science, Engineering and Business, there is not representative bechmark and model to evaluate the performance of computing platforms as HTC environments. At first sight, it could be agued that there is no need for such a performance model. We agree on this for static and homogeneous systems. However, how can we evaluate a system consisting of heterogeneous and/or dynamic components?.
Benchmarking of Grid infrastructures has always been a highly polemic area. The heterogeneity of the components and the high number of layers in the middleware stack make difficult even to define the aim and scope of the benchmark. A couple of years ago we wrote a paper entitled "Benchmarking of High Throughput Computing Applications on Grids" (R. S. Montero, E. Huedo and I. M. Llorente) for the Parallel Computing Journal presenting a pragmatic approach to evaluate the performance of a Grid infrastructure when running High Throughput Computing (HTC) applications. We demonstrated that the complexity of a whole Grid infrastructure can be represented by only two performance parameters, which can be used to compare infrastructures. The proposed performance model is independent from the middleware stack and valid for any computing infrastructure, so being also applicable for the evaluation of clusters and HPC servers.
Our proposal is to follow an approach similar to that used by Hockney and Jesshope to characterize the performance of homogeneous array architectures on vector computations. A first-order description of a Grid can be made by using the following formula for the number of tasks completed as a function of time:
n(t)=R*t-N
Note that given the heterogeneous nature of a Grid, the execution time of each task can differ greatly. So the following analysis is valid for general HTC applications, where each task may require distinct instruction streams. The coefficients of the line are called:
The above linear relation can be used to define the performance of the system (tasks completed per second) on actual applications with a finite number of tasks:
r(n)=R/(1+N/n)
This linear model can be interpreted as an idealized representation of a heterogeneous Grid, equivalent to an homogeneous array of 2N processors with an execution time per task 2* N/R.
The half-performance length (N), on the other hand, provides a quantitative measure of the heterogeneity in a Grid. This result can be understood as follows, faster processors contribute in a higher degree to the performance obtained by the system. Therefore the apparent number of processors (2N), from the application's point of view, will be in general lower than the total processors in the Grid (P). We can define the degree of heterogeneity (m) as 2N/P. This parameter varies form m = 1 in the homogeneous case, to m = 0 when the actual number of processors in the Grid is much greater than the apparent number of processors (highly heterogeneous).
N is an useful characterization parameter for Grid infrastructures in the execution of HTC applications. For example, let us consider two different Grids with a similar asymptotic performance. In this case, by analogy with the homogeneous array, a lower N parameter reflects a better performance (in terms of wall time) per Grid resource, since the same performance (in terms of throughput) is delivered by a smaller ‘‘number of processors''.
We propose the OGF DRMAA implementation of the ED benchmark in the NAS Grid Benchmark suite, with an appropriate scaling to stress the computational capabilities of the infrastructure, as benchmark to apply the performance model. The ED benchmark comprises the execution of several independent tasks. Each one consists in the execution of the SP flow solver with a different initialization parameter for the flow field. These kind of HTC applications can be directly expressed with the DRMAA interface as bulk jobs.
DRMAA represents a suitable and portable API to express distributed communicating jobs, like the NGB. In this sense, the use of standard interfaces allows the comparison between different Grid implementations, since neither NGB nor DRMAA are tied to any specific Grid infrastructure, middleware or tool. DRMAA is implemented with the following available Resource Manager systems: Condor, LSF, Globus GridWay, Grid Engine and PBS.
In the paper we present both an intrusive and a non-intrusive methods to obtain the performance parameters. The light-weight non-intrusive probes provide continual information on the health of the Grid environment, and so a way to measure the dynamic capacity of the Grid, which could eventually be used to generate global meta-scheduler strategies.
We have demonstrated in several publications how the first-order model reflects performance of complex infrastructures running HTC applications. So, why don't we create a TOP500-like ranking of infrastructures?. The ranking could be dynamic, obtaining the parameters with the non-intrusive probes. We have all the ingredients:
Ignacio Martín Llorente
Reprinted from blog.dsa-research.org
منبع : http://gridgurus.typepad.com
You have built and installed your shiny new cluster, installed the Grid Engine software, configured the queues, and announced to the world that your new system is ready to be used. What next? Well, think about your monitoring options…
As users start submitting jobs and hammering the system in every possible way, things will inevitably break on occasion. When something goes wrong in the system, you will want to know about the problem before you start receiving help desk calls and user emails.
The first step in developing an effective strategy for monitoring Grid Engine is learning how to use the available command line tools and how to look for possible issues in the system. Some of the things that you should always pay attention to include:
• queues in the unknown state; instance queue in an unknown state usually means that execution daemon is down on that particular host
• queues and jobs in the error state
• configuration inconsistencies
• load alarms
All of the above information can be easily obtained using the qstat command (e.g., try something like “qstat -f -qs uaAcE -explain aAcE”). It is also not difficult to script basic GE monitoring tasks and come up with a simple infrastructure that is able to alert system administrators to any new or outstanding problems in the system.
As your user base grows, so will your monitoring needs, and you will likely want to extend your monitoring tools. You should consider looking into existing software packages like xml-qstat, which uses XSLT transformations to render Grid Engine command line XML output into different output formats. Alternatively, you can also develop set of your own XSL stylesheets that are customized to your needs, and use widely available command line tools such as xsltproc to generate monitoring web pages from the “qstat -xml” output.
Another interesting Grid Engine monitoring option is the Monitoring Console that comes with Cluster Express (CE). Its main advantage is that it integrates monitoring data from several different sources: Ganglia (system data), Grid Engine Qmaster and ARCo database (job data). However, even though the Cluster Express by itself is easy to install, at the moment integrating the CE Monitoring Console with existing Grid Engine installation requires a little bit of work. I am told that this will be much simplified in the upcoming CE release. In the meantime, if you are really anxious to try the CE Monitoring GUI on your Grid Engine cluster, do not hesitate to send me an email…
منبع : http://gridgurus.typepad.com
Up until I read Ian Foster’s Cloud Computing post, I had paid little attention to what the term meant to people. Personally, I had already chalked up the idea as a rebranding of Grid computing. So I asked a number of friends what they thought the differences between the two were. Of course many people not actively involved in the community are not familiar with either concept. (I find the fact that computer professionals know what the latest buzz is around SaaS, and SOA but do not seem to consider how and where they might land these systems peculiar.) In any event, here is a summary of the answers I received:
While I found it rather interesting that while there was some overlap of technical perspectives, I did not get any answers that were identical. I believe that the last description explains this situation nicely while also offering the most interesting take on the topic. A Cloud is a nuanced term that invokes the idea of something beautiful which also evolves rapidly, contains a lot of power, and then is gone. Meanwhile the grid, like the utilities it was conceived from, is known for its reliability, ability to tap into reserve power on a moments notice, as well as their accommodating levels of service. Notice how the first two answers all adhere to this concept? I don’t think this is an accident nor do I think that this escaped the attention of the marketing departments of industry-leaders like Amazon and Google, both of whom operate in what they term Cloud space. While it is distinctly possible that the term organically evolved, it is interesting that they chose to stick with it.
Once more, I found it particularly noteworthy that not one person I queried mentioned the amount of data to be processed. Foster and the Business Week article he references, as well as many others, suggest that we need to think in terms of a great deal more data than we have before. For example, Google wants their people to think in terms of a thousand times more data than that to which they are accustomed.
Heck, I was thinking about writing about the so-called “Data Tsunami” myself – but not in terms of thinking about significantly larger datasets. The datasets we were working with a decade ago were suitably massive for what we were trying to accomplish. Like today, it was not economically feasible to keep it all online at once. The fact is that the incredible leaps in computational capacity have led us to build more complicated problems that demand still more data. As such, a thousand times more data is probably still not enough. If only the networking and storage companies had kept up with the leaps in processing capacity (I was on a gigabit network five years ago and I am using a gigabit network today >sigh<).
Consequently we still have to use the tried and true standard operating procedure of:
For example, the Large Hadron Collider will be examining billions of collisions per second but will only store a few hundred per second for later processing (see recent article on Dr. Heuer). We have always needed to think in terms of a thousand times more data than we can possibly process or to become accustomed. Basically the scope of what is economically feasible has changed dramatically over the last few decades, while we continue to be quite resource constrained. Which brings us back to the concept of capacity computing, whether in the form of a transitory Cloud, a steadfast Grid, or even the comfortable @home project. The key here is that people are continuing to push passed the boundaries of what is feasible.
منبع : http://gridgurus.typepad.com
Fortune 400 businesses, and many smaller ones, run clusters in many different locations around the world.
As facility, management and other costs continue to become larger and large shares of corporate IT budgets, networking costs continue to fall. The result is that data center consolidation becomes a more reasonable goal.
I've seen this in a few of my customers. Beginning last year people started looking more toward grid technology to help them manage this. As the economy has tightened more people have considered this. Particularly as part of a plan toward cost reduction by moving to open source tools.
The general pattern is that the IT group decides they need to find ways to more effectively manage large and disconnected sets of resources. They turn to grid computing to help them manage that cloud and in the process realize that they have a lot of special purpose machines that are being quite underutilized and that they have enormous duplication of effort in the management of those data centers.
As we've entered into a bear market, many companies are taking a second look at their IT costs and looking for ways to tighten their belts. The combination of open source and grid/cloud computing models offers the ability to do that with open source offering a lower cost software acquisition model and grid computing allowing reduction in IT staff through centralization.
I've also been working with folks on the lost art of environment management. But more on that in a future blog...
منبع : http://gridgurus.typepad.com
محققان "اي.بي.ام" نيروي لازم براي حركت دادن يك اتم را اندازه گرفتند
محققان آمريكايي و آلماني براي نخستين بار موفق شدند نيروي لازم براي حركت دادن اتمهاي مجزا روي يك سطح را اندازه بگيرند.
به گزارش خبرگزاري يونايتدپرس از سن خوزه، محققان "مركز تحقيقات آلمادن" آي.بي.ام در سن خوزه واقع در كاليفرنيا و "دانشگاه ريجينسبورگ" در آلمان گفتند، دستاورد بزرگ آنها اطلاعات زيربنايي درباره ساخت در مقياس اتم ارائه ميدهد.
به گفته آنان با پيشرفتهاي بيشتر در جهت فناوريهاي پزشكي و رايانهاي در مقياس نانو، يافته جديد ميتواند به ساخت ابزار جديد ذخيره اطلاعات در ابعاد مينياتوري و تراشههاي كامپيوتري منجر شود.
اين تحقيق نشان ميدهد نيروي لازم براي تكان دادن يك اتم كبالت بر روي يك سطح صاف پلاتين ۲۱۰پيكونيوتن است در حاليكه تكان دادن يك اتم كبالت بر روي يك سطح مس تنها ۱۷پيكونيوتن نيرو لازم دارد.
براي مجسم ساختن اين موضوع دانشمندان گفتند، نيروي لازم براي بلند كردن يك پني مسي كه تنها سه گرم وزن دارد حدود ۳۰ميليارد پيكونيوتن است.
محققان گفتند، توانايي اندازهگيري نيروي لازم براي تكان دادن اتمهاي مجزا دريچه تازهاي را به روي فعاليتهاي ساخت و عمليات اتم به اتم براي ابداع ابزارهاي نانو در آينده باز ميكند.
اين كشف در مجله "علوم" منتشر شده است.
منبع : http://www1.irna.com/fa/news/view/menu-152/8612045709124352.htm
آدرس : http://www.esnips.com/web/IKT07
Globus?Toolkit 4, : Programming Java Services (The Elsevier Series in Grid Computing)
Publisher: Morgan Kaufmann; 1 edition
Language: English
ISBN: 0123694043
Paperback: 506 pages
Data: December 16, 2005
Format: PDF
Description: The Globus Toolkit (http://www.globus.org/toolkit/) is a key technology in Grid Computing, the exciting new computing paradigm that allows users to share processing power, data, storage, and other computing resources across institutional and geographic boundaries. Globus Toolkit 4: Programming Java Services provides an introduction to the latest version of this widely acclaimed toolkit. Based on the popular web-based The Globus Toolkit 4 Programmer's Tutorial, this book far surpasses that document, providing greater detail, quick reference appendices, and many additional examples. If youre making the leap into Grid Computing using the Globus Toolkit, youll want Globus Toolkit 4: Programming Java Services at your side as you take your first steps.
+ Written for newcomers to Globus Toolkit, but filled with useful information for experienced users.
+ Clearly situates Globus application development within the context of Web Services and evolving Grid standards.
+ Provides detailed coverage of Web Services programming with the Globus Toolkit's Java WS Core component.
+ Covers basic aspects of developing secure services using the Grid Security Infrastructure (GSI).
+ Uses simple, didactic examples throughout the book, but also includes a more elaborate example, the FileBuy application, that showcases common design patterns found in Globus applications.
+ Concludes with useful reference appendices.
Download - (5 Mb)
http://www.icefile.info/index.php?page=main&id=6c6ee2259&name=0123694043.rar
به نقل از سایت : http://barnamenevis.org
من یه چند ماهی میشه که دارم رو مبحث کلاسترینگ کار میکنم و تو همین چند ماه کاربا لینوکس رو بصورت حرفه ای شروع کردم(البته هنوز چیز قابل توجه از لینوکس بلد نیستم). و یه چند روزی میشه که با openMosix سه تا از کامپیوترهای site دانشگاه کلاستر کردم که این 3 کامپیوتر به وسیله یک سوئیج بطور مستقل از سایر کامپیوتر ها به هم متصل هستن که مشخصاتشون به شرح زیر هست (کرنل هر سه سیستم 2.4.26 و توزیع هر سه REDHAT9 می باشد):
بعد از بر پا سازی کلاستر و آزمایش اون زیر بار ،با نتایج غیر قابل انتظار و عجیبی رو برو شدم.طبق نتایج زیر استفاده از openmosix باعث میشه که پردازش کندتر صورت بگیره !!! فکر میکنید علت از چیزه ؟ از سخت افزار خاصی هست یا دلیل دیگه ای داره؟
در آزمایش اول و دوم ، 3 و سپس 9 فایل wave با نرم افزار lame به شرح زیر به mp3 تبدیل شدن و در آزمایش سوم دو for تو در تو (10000 × 10000) اجرا شده که در دو آزمایش اول openMosix کندتر عمل کرده ولی در سومی سریعتر.
Node اجرائی (نودی که آزمایش ها روی اون صورت گرفته) Node 1 می باشد.
تبدیل 3 فایل Wave به MP3 (به حجم زیر):
1- 35.4 MB
با استفاده از OPENMOSIX:
اجرای همزمان تمامی فایل ها : 2:44.7 دقیقه
اجرای ترتیبی و پشت سر هم : 4:17.4 دقیقه
بدون استفاده از OPENMOSIX :
اجرای همزمان تمامی فایل ها : 1:50.7 دقیقه
تبدیل 9 فایل Wave به MP3 (به حجم زیر):
1- 35.4 MB
با استفاده از OPENMOSIX :
اجرای همزمان تمامی فایل ها : 6:18.4 دقیقه
اجرای ترتیبی و پشت سر هم : 12:12.0 دقیقه
بدون استفاده از OPENMOSIX :
اجرای همزمان تمامی فایل ها : 4:16.7 دقیقه
اجرای دو FOR تودرتو (10000× 10000) :
با استفاده از OPENMOSIX :
با کامپيوتر قديمی خود يک Router بسازيد
Nmap چيست؟
Nmap مخفف Network Mapper ميباشد و يک نرم افزار کاربردي براي جستجوي شبکه يا مميزي امنيتي شبکه به شمار ميايد. اين نرم افزار طوري طراحي شده که شبکه هاي بزرگ را به سرعت اسکن کند، اگر چه مي تواند بر روي سيستم هاي تنها نيز بخوبي کار کند. Nmap از ip packet هاي خام بصورت منحصر بفرد استفاده مي کند تا تعيين کند چه رايانه هايي (hosts) بر روي شبکه در دسترس مي باشند، چه سرويسهايي (ports) ارائه مي کنند، چه سيستم عاملهايي (بهمراه نسخة سيستم عامل) بر روي آنها در حال اجرا مي باشد، چه نوع packet filter ها / فايروالهايي مورد استفاده قرار گرفته و چندين پارامتر ديگر. Nmap بر روي اکثر رايانه ها، هم گرافيکي و هم کنسول ها قابل استفاده است. Nmap يک نرم افزار مجاني است که به همراه کدهاي آن تحت واژة GNU GPL در دسترس مي باشد.
ويژگيهای Nmap
انعطاف پذيري
از چندين تکنيک پيشرفته براي استخراج نقشة شبکه استفاده مي کند که اين نقشه از IP filter ها، فايروالها، مسيريابها و ديگر موانع تشکيل شده است. اين نقشه همچنين شامل بسياري از پورتهاي اسکن شده ( هم TCP و هم UDP)، تشخيص سيستم عامل، ping sweep ها و عوامل ديگر مي باشد.
قدرتمندي
از Nmap جهت اسکن کردن شبکه هاي بسيار بزرگ به معني واقعي کلمه، يعني صدها هزار از ماشين، استفاده شده است.
قابليت حمل
بر روي اکثر سيستم عاملها استفاده مي شود و از آن پشتيباني مي کنند. اين سيستم عاملها شامل Linux ، Open/Free/Net BSD ، Solaris ، IRIX ، Mac OS ، HP-UX ، Sun OS و غيره مي باشد.
سادگي
در ضمن اينکه Nmap يک مجموعه از خصوصيات پيشرفته را براي کاربران توانمند ارئه مي دهد، شما مي توانيد استفاده از آن را با دستور “nmap –O –sS targethost” آغاز نماييد. هم نسخه هاي command line و هم نسخه هاي گرافيکي (GUI) بر اساس نياز شما در دسترس مي باشد. نسخة باينري نيز براي براي کساني که مايل به کامپايل کردن کدهاي Nmap نيستند موجود مي باشد.
رايگان
هدف اوليه از پروژة Nmap جهت کمک به امن کردن بيشتر اينترنت و تجهيز مديران شبکه / مميزين شبکه (auditors) / هکرها به يک ابزار پيشرفته جهت جستجوي شبکة تحت کنترلشان بوده است. Nmap براي download رايگان به همراه کدهاي کامل آن که شما مي توانيد آنها را تغيير دهيد و تحت GNU General Public License (GPL) در اختيار ديگران قرار دهيد، در دسترس مي باشد.
خوب مستند سازي شده
بيشترين تلاش صورت گرفته تا مستندات و manual page ها به روز و قابل فهم باشد. همچنين اين مستندات و manual page ها به چندين زبان موجود مي باشند.
- تحت پشتيباني: اگرچه اين نرم افزار هيچ ضمانتي ندارد، شما مي توانيد اگر با مشکلي مواجه شديد به آدرس fyodor@insecure.org ايميل بزنيد.
تائيد شده
Nmap جوايز بسياري برده است، مثل “Information Security Product of the Year” از طرف World and Codetalker Digest.
مشهور
همه روزه هزاران نفر از مردم Nmap را download مي کنند و اين نرم افزار با بسياري از سيستم عاملها کار ميکند.
روش عملکرد Nmap
در اين قسمت به توضيح عملکرد نرم افزار Nmap تحت سيستم عامل Linux مي پردازيم و سپس به توضيح سوئيچ هاي Nmap که بصورت command line مي باشند مي پردازيم:
همانطور که گفته شد Nmap يک نرم افزار امنيتي مي باشد که تعداد زيادي از تکنيکهاي اسکن را پشتيباني مي کند:
UDP ، TCP connect() ، TCP SYN (half open) ، FTP proxy (bounce attack) ، Reverse-ident ، ICMP (ping sweep) ، FIN ، ACK sweep ، Xmas Tree ، SIN sweep ، IP Protocol و Null scan .
همچنين Nmap داراي بسياري از قابليتهاي پيشرفته نظير شناسايي OS با استفاده از TCP/IP ، اسکن نامحسوس (stealth scanning) ، محاسبات تاخير ديناميکي و انتقال مجدد (retarnsmission) ، اسکن موازي، شناسايي سيستم هاي خاموش (down hosts) از طريق ping هاي موازي، decoy scanning ، شناسايي پورتهاي فيلتر شده ، direct (non-portmapper) RPC scanning ، fragmentation scanning و همچنين تعيين پورت و هدف منعطف مي باشد.
حداکثر تلاشها صورت گرفته تا کارايي Nmap براي کاربراني که از امتياز root برخودار نيستند، کاهش نيابد. متاسفانه بسياري از واسطهاي kernel هاي حساس (مثل سوکتهاي خام [raw sockets]) نياز به مجوز root دارند. هر زمان که ممکن است Nmap بايد تحت مجوز root راه اندازي شود (البته نه بعنوان setuid root).
نتيجة اجراي Nmap معمولاً يک ليست از پورتهاي جالب (در صورت وجود) از ماشين يا ماشينهايي که اسکن شده اند، مي باشد. هميشه Nmap در مورد پورت شناخته شده (“well known”port) نام سرويس (در صورت وجود)، نام، وضعيت و پروتکل را مي دهد. وضعيت (state) مي تواند ‘open’ ، ‘filtered’ يا ‘unfiltered’ باشد. ‘open’ يعني ماشين مورد نظر ارتباطات روي آن پورت را connect() خواهد کرد. ‘filtered’ يعني يک فايروال / فيلتر يا ديگر موانع موجود بر روي شبکه، پورت را پوشش مي دهد و مانع آن مي شود که Nmap تعيين کند که پورت باز است يا بسته. ‘unfiltered’ يعني آن پورتي که توسط Nmap شناسايي شده، بسته شده و بنظر مي رسد هيچ فايروالي / فيلتري به تلاش Nmap براي تعيين وضعيت آن پورت توجه ندارد. مواجه شدن با پورتهاي ‘unfiltered’ متداول مي باشند و زماني اين وضعيتها نشان داده مي شوند که اکثر پورتهاي اسکن شده در وضعيت ‘filtered’ باشند.
بسته به سوئيچهاي استفاده شده، Nmap مي تواند مشخصات زير را در remote host معين کند: سيستم عامل مورد استفاده، TCP sequencability ، نام کاربراني که برنامه هاي منحصر به هر پورت را اجرا مي کنند، نام DNS ، تعيين اينکه آيا ميزبان يک smurf address مي باشد و چند مشخصة ديگر.
- همچنين Nmap داراي بسياري از قابليتهاي پيشرفته نظير موارد زیر میباشد:
- شناسايي OS با استفاده از TCP/IP
- اسکن نامحسوس (stealth scanning)
- محاسبات تاخير ديناميکي و انتقال مجدد (retarnsmission)
- اسکن موازي
- شناسايي سيستم هاي خاموش (down hosts) از طريق ping هاي موازي
- decoy scanning
- شناسايي پورتهاي فيلتر شده
- direct (non-portmapper) RPC scanning
- fragmentation scanning
حداکثر تلاشها صورت گرفته تا کارايي Nmap براي کاربراني که از امتياز root برخودار نيستند، کاهش نيابد. متاسفانه بسياري از واسطهاي kernel هاي حساس (مثل سوکتهاي خام [raw sockets]) نياز به مجوز root دارند. هر زمان که ممکن است Nmap بايد تحت مجوز root راه اندازي شود (البته نه بعنوان setuid root).
نتيجة اجراي Nmap معمولاً يک ليست از پورتهاي جالب (در صورت وجود) از ماشين يا ماشينهايي که اسکن شده اند، مي باشد. هميشه Nmap در مورد پورت شناخته شده
(“well known”port) نام سرويس (در صورت وجود)، نام، وضعيت و پروتکل را مي دهد. وضعيت (state) مي تواند ‘open’ ، ‘filtered’ يا ‘unfiltered’ باشد. ‘open’ يعني ماشين مورد نظر ارتباطات روي آن پورت را connect() خواهد کرد. ‘filtered’ يعني يک فايروال / فيلتر يا ديگر موانع موجود بر روي شبکه، پورت را پوشش مي دهد و مانع آن مي شود که Nmap تعيين کند که پورت باز است يا بسته. ‘unfiltered’ يعني آن پورتي که توسط Nmap شناسايي شده، بسته شده و بنظر مي رسد هيچ فايروالي / فيلتري به تلاش Nmap براي تعيين وضعيت آن پورت توجه ندارد. مواجه شدن با پورتهاي ‘unfiltered’ متداول مي باشند و زماني اين وضعيتها نشان داده مي شوند که اکثر پورتهاي اسکن شده در وضعيت ‘filtered’ باشند.
بسته به سوئيچهاي استفاده شده، Nmap مي تواند مشخصات زير را در remote host معين کند: سيستم عامل مورد استفاده، TCP sequencability ، نام کاربراني که برنامه هاي منحصر به هر پورت را اجرا مي کنند، نام DNS ، تعيين اينکه آيا ميزبان يک smurf address مي باشد و چند مشخصة ديگر.
Gridbus/GRIDS Lab Annual Report
The GRIDS Lab and the Gridbus Project is pleased to release Annual
Report of its key activities and outcomes during the academic year 2007.
Please browse:
http://www.gridbus.org/reports/GRIDS-Lab-AnnualReport2007.pdf
منبع : http://www.gridbus. org
High Performance SSH/SCP - HPN-SSH
SCP and the underlying SSH2 protocol implementation in OpenSSH is network performance limited by statically defined internal flow control buffers. These buffers often end up acting as a bottleneck for network throughput of SCP, especially on long and high bandwith network links. Modifying the ssh code to allow the buffers to be defined at run time eliminates this bottleneck. We have created a patch that will remove the bottlenecks in OpenSSH and is fully interoperable with other servers and clients. In addition HPN clients will be able to download faster from non HPN servers, and HPN servers will be able to receive uploads faster from non HPN clients. However, the host receiving the data must have a properly tuned TCP/IP stack. Please refer to this tuning page for more information.
The amount of improvement any specific user will see is dependent on a number of issues. Transfer rates cannot exceed the capacity of the network nor the throughput of the I/O subsystem including the disk and memory speed. The improvement will also be highly influenced by the capacity of the processor to perform the encryption and decryption. Less computational expensive ciphers will often provide better throughput than more complex ciphers.
With many high bandwidth connections, there is a performance gap between what SSH is capable of and what the network link has the capacity to do. The difference between these two numbers is the performance gap, or the underutilized portion of your network connection. This gap, in most situations, is the direct cause of undersized receive buffers in the SSH congestion control mechanism. The graph below shows the optimal receive buffer versus the effective SSH channel receive buffer for various round trip times along a 100Mbps path

The effect of raising the SSH buffer sizes can be seen in the following chart. The standard SSH throughput, represented by the red columns, closely matches the expected throughput for this path if the receive buffer was limited to 64KB. By increasing the size of the SSH channel receive buffers throughput, represented by the blue columns, improved by as much as 1000%. The variation now seen is due to the complexity of the cipher and the limits of the hard drive.

All patches should be applied to the OpenSSH source files using the 'patch' utility from the command line. Building SSH from source is actually quite easy and the recommended method. Some binary packages will be made available as a convenience but will not be officially supported.
Solaris Users: Some versions of Solaris use an older version of the patch and diff commands which are incompatible with this patch. Please make sure you are using a recent version of gnu patch.
This is the 1st revision of the 13th major version of the HPN patch set. The HPN12 patch set remains available here. There are two fundamental differences between the HPN12 and HPN13 patch set. The most significant of these is the inclusion of the Multi-Threaded AES-CTR (MT-AES-CTR) mode cipher. A paper and presentation about this work are available.
This cipher mode introduces multi-threading into the OpenSSH application in order to allow it to make full use of CPU resources available on multi-core systems. As the canonical distribution of OpenSSH is unable to make use of more than one core, high performance transfers can be bottlenecked by the cryptographic overhead. HPN12 dealt with this by the introduction of None Cipher Switching. However, this technique is limited to those users who are willing to allow their data to be transferred without encipherment. It also was, by design, limited to bulk data transfers which further restricts its value to some users. The MT-AES-CTR mode will allow users, on multicore platforms, to attain throughput rates comparable or equal to unencrypted data transfers. In both lab and real world tests throughput at full GigE line rates, with full encryption, were commonly seen.

MT-AES-CTR produces a cipherstream that is indistinguishable from the distributed Single Thread AES-CTR (ST-AES-CTR) mode cipher and is, to our knowledge, completely compatible with all other AES-CTR mode implementations. In other words, its completely backward compatible and will function in heterogenous connections with no problem. However, it is important to note MT-AES-CTR does impose additional overhead and may impose a performance penalty on single core machines. Additionally, the MT-AES-CTR mode cipher replaces the default ST-AES-CTR mode cipher. We are in the process of developing a method to allow user switching between the two modes. Additionally, this does rely on posix threads so you need to be sure they are properly supported in the target OS.
The second major difference is in the way in which the HPN patch set will be made available. HPN13 will be provided as both a 'kitchen sink' and 'a la carte' distribution. The kitchen sink distribution will incorporate the dynamic window patches, none cipher switching, MT-AES-CTR mode ciphers, peak throughput display in SCP, and extended server side logging. The a la carte distribution will make each of these available as distinct patches which can be used independently of each other.
Note: This patch has been gziped. You must gunzip it before applying it.
| OpenSSH Version | HPN-SSH Patch |
| OpenSSH 4.7p1 | OpenSSH-4.7p1-hpn13 v1 |
These are the a la carte patches and some of the version numbers may skew from time to time. For example, if the peak throughput patch doesn't need to be updated for various OpenSSH releases the patch number won't be updated. Not all of the patches are available just yet, as the NONE cipher switching still needs to be broken out from the HPN12 patch set.
| Patch | Description | Source |
| Dynamic Windows and None Cipher | This is a basis of the HPN-SSH patch set. It provides dynamic window in SSH and the abilityt o switch to a NONE cipher post authentication. Based on the HPN12 v20 patch. This patch is gziped. For OpenSSH 4.7p1. | openssh4.7-dynwindow_noneswitch.diff.gz |
| Threaded CTR cipher mode | This patch adds threading to the CTR block mode for AES and other supported ciphers. This may allow SSH to make use of multiple cores/cpus during transfers and significantly increase throughput. This patch should be considered experimental at this time. | openssh4.7-CTR-threading.diff |
| Peak Throughput | This patch modifes the progress bar to display the 1 second throughput average. On completion of the transfer it will display the peak throughput through the life of the connection. For OpenSSH 4.7p1. | openssh4.7-peaktput.diff |
| Server Logging | This patch adds additional logging to the SSHD server including encryption used, remote address and port, user name, remote version information, total bytes transferred, and average throughput. In order to use this patch you *must* direct syslogd to use an additional logging socket. This socket will be located in the sshd chroot, typically /var/empty. As such you will need to create a /var/empty/dev directory and add '-a /var/empty/dev/log' to your syslogd configuration. Example output can be seen here For OpenSSH 4.7p1. | openssh4.7-server-logging.diff |
How to apply the patches.
1. Get the OpenSSH source code from OpenSSH.org.
2. Untar OpenSSH source.
3. cd into the OpenSSH source directory
4. If gzipped type 'zcat pathtopatch/patchfile | patch'
Otherwise 'patch < pathtopatch/patchfile'
5. type 'configure && make'
6. type 'make install'
TeraGrid '08
TeraGrid '08 Welcomes Papers, Posters, Demos, and Visualizations!
The 3rd annual conference will showcase TeraGrid's impact in research and education through presented papers, demos, posters, and visualizations. TG08 will foster collaborations among leading researchers, developers, and educators that build on the growing TeraGrid infrastructure. TG08 will also provide information and training to enable current and future users to achieve maximum impact using TeraGrid resources and services. All interested individuals and organizations are invited to participate. Visit the Call for Participation.
For complete conference details, visit http://www.tacc.utexas.edu/tg08/index.php
منبع : http://www.teragrid.org
درباره TeraGrid
TeraGrid is an open scientific discovery infrastructure combining leadership class resources at eleven partner sites to create an integrated, persistent computational resource.
Using high-performance network connections, the TeraGrid integrates high-performance computers, data resources and tools, and high-end experimental facilities around the country. Currently, TeraGrid resources include more than 750 teraflops of computing capability and more than 30 petabytes of online and archival data storage, with rapid access and retrieval over high-performance networks. Researchers can also access more than 100 discipline-specific databases. With this combination of resources, the TeraGrid is the world's largest, most comprehensive distributed cyberinfrastructure for open scientific research.
TeraGrid is coordinated through the Grid Infrastructure Group (GIG) at the University of Chicago, working in partnership with the Resource Provider sites: Indiana University, Oak Ridge National Laboratory, National Center for Supercomputing Applications, Pittsburgh Supercomputing Center, Purdue University, San Diego Supercomputer Center, Texas Advanced Computing Center, University of Chicago/Argonne National Laboratory, the National Institute for Computational Sciences, the Louisiana Optical Network Initiative, and the National Center for Atmospheric Research.
منبع : http://teragrid.org/about
Multi-Threaded SSH/SCP
Chris Rapier has presented a paper describing how to dramatically increase the speed of SCP networks. It appears that because SCP relies on a single thread in SSH, the crypto can sometimes be the bottleneck instead of the wire speed. Their new implementation (HPN-SSH) takes advantage of multi-threaded capable systems dramatically increasing the speed of securely copying files. They are currently looking for potential users with very high bandwidth to test the upper limits of the system.
http://www.psc.edu/networking/projects/hpn-ssh/
لیست کامل تمامی دستورات قابل اجرا از طریق Run
با استفاده از دستورات موجود در این لیست که بیش از 110 دستور را شامل میشود شما میتوانید تنها از طریق Run ویندوز ، و تایپ ساده دستور کوتاه بلافاصله برنامه مورد نظر را اجرا نمایید.
این برنامه میتواند برنامه های معمولی ویندوز و حتی برنامه های متفرقه نصب شده باشد. در صورتی که بتوانید تعداد زیادی از این دستورات را به خاطر بسپارید و آنها را در کار روزانه خود هنگام کار با کامپیوتر به کار بگیرید ، آنگاه شما را میتوان یک کاربر واقعأ حرفه ای در ویندوز نامید.
برای شروع کار کافی است از منوی Start وارد Run شوید. سپس هر یک از دستورات موجود در ستون دستور را تایپ نموده و سپس Enter بزنید تا بلافاصله برنامه مورد نظر اجرا گردد.
| نام برنامه اجرایی |
دستور |
| Accessibility Controls | access.cpl |
| Add Hardware Wizard | hdwwiz.cpl |
| Add/Remove Programs | appwiz.cpl |
| Administrative Tools | control admintools |
| Automatic Updates | wuaucpl.cpl |
| Bluetooth Transfer Wizard | fsquirt |
| Calculator | calc |
| Certificate Manager | certmgr.msc |
| Character Map | charmap |
| Check Disk Utility | chkdsk |
| Clipboard Viewer | clipbrd |
| Command Prompt | cmd |
| Component Services | dcomcnfg |
| Computer Management | compmgmt.msc |
| Date and Time Properties | timedate.cpl |
| DDE Shares | ddeshare |
| Device Manager | devmgmt.msc |
| Direct X Control Panel - If Installed | directx.cpl |
| Direct X Troubleshooter | dxdiag |
| Disk Cleanup Utility | cleanmgr |
| Disk Defragment | dfrg.msc |
| Disk Management | diskmgmt.msc |
| Disk Partition Manager | diskpart |
| Display Properties | control desktop |
| Display Properties | desk.cpl |
| Display Properties w/Appearance Tab Preselected | control color |
| Dr. Watson System Troubleshooting Utility | drwtsn32 |
| Driver Verifier Utility | verifier |
| Event Viewer | eventvwr.msc |
| File Signature Verification Tool | sigverif |
| Findfast | findfast.cpl |
| Folders Properties | control folders |
| Fonts | control fonts |
| Fonts Folder | fonts |
| Free Cell Card Game | freecell |
| Game Controllers | joy.cpl |
| Group Policy Editor - XP Pro | gpedit.msc |
| Hearts Card Game | mshearts |
| Iexpress Wizard | iexpress |
| Indexing Service | ciadv.msc |
| Internet Properties | inetcpl.cpl |
| IP Configuration - Display Connection Configuration | ipconfig /all |
| IP Configuration - Display DNS Cache Contents | ipconfig /displaydns |
| IP Configuration - Delete DNS Cache Contents | ipconfig /flushdns |
| IP Configuration - Release All Connections | ipconfig /release |
| IP Configuration - Renew All Connections | ipconfig /renew |
| IP Configuration - Refreshes DHCP & Re-Registers DNS | ipconfig /registerdns |
| IP Configuration - Display DHCP Class ID | ipconfig /showclassid |
| Java Control Panel - If Installed | jpicpl32.cpl |
| Java Control Panel - If Installed | javaws |
| Keyboard Properties | control keyboard |
| Local Security Settings | secpol.msc |
| Local Users and Groups | lusrmgr.msc |
| Logs You Out Of Windows | logoff |
| Microsoft Chat | winchat |
| Minesweeper Game | winmine |
| Mouse Properties | control mouse |
| Mouse Properties | main.cpl |
| Network Connections | control netconnections |
| Network Connections | ncpa.cpl |
| Network Setup Wizard | netsetup.cpl |
| Notepad | notepad |
| Nview Desktop Manager - If Installed | nvtuicpl.cpl |
| Object Packager | packager |
| ODBC Data Source Administrator | odbccp32.cpl |
| On Screen Keyboard | osk |
| Opens AC3 Filter - If Installed | ac3filter.cpl |
| Password Properties | password.cpl |
| Performance Monitor | perfmon.msc |
| Performance Monitor | perfmon |
| Phone and Modem Options | telephon.cpl |
| Power Configuration | powercfg.cpl |
| Printers and Faxes | control printers |
| Printers Folder | printers |
| Private Character Editor | eudcedit |
| Quicktime - If Installed | QuickTime.cpl |
| Regional Settings | intl.cpl |
| Registry Editor | regedit |
| Registry Editor | regedit32 |
| Remote Desktop | mstsc |
| Removable Storage | ntmsmgr.msc |
| Removable Storage Operator Requests | ntmsoprq.msc |
| Resultant Set of Policy - XP Pro | rsop.msc |
| Scanners and Cameras | sticpl.cpl |
| Scheduled Tasks | control schedtasks |
| Security Center | wscui.cpl |
| Services | services.msc |
| Shared Folders | fsmgmt.msc |
| Shuts Down Windows | shutdown |
| Sounds and Audio | mmsys.cpl |
| Spider Solitare Card Game | spider |
| SQL Client Configuration | cliconfg |
| System Configuration Editor | sysedit |
| System Configuration Utility | msconfig |
| System File Checker Utility - Scan Immediately | sfc /scannow |
| System File Checker Utility - Scan Once At Next Boot | sfc /scanonce |
| System File Checker Utility - Scan On Every Boot | sfc /scanboot |
| System File Checker Utility - Return to Default Setting | sfc /revert |
| System File Checker Utility - Purge File Cache | sfc /purgecache |
| System File Checker Utility - Set Cache Size to size x | sfc /cachesize=x |
| System Properties | sysdm.cpl |
| Task Manager | taskmgr |
| Telnet Client | telnet |
| User Account Management | nusrmgr.cpl |
| Utility Manager | utilman |
| Windows Firewall | firewall.cpl |
| Windows Magnifier | magnify |
| Windows Management Infrastructure | wmimgmt.msc |
| Windows System Security Tool | syskey |
| Windows Update Launches | wupdmgr |
| Windows XP Tour Wizard | tourstart |
| Wordpad | write |
اسرار كرنل ويندوز
تسريع بوت:
هنگامي كه شما براي اولين بار ويندوز XP را بر روي يك سيستم نصب مي كنيد، يكي از بارزترين بهبودهايي كه مايكروسافت به كرنل سيستم عامل خود داده است توجه شما را جلب خواهد كرد. در طي سير تغيير و تحولات ويندوز و آمدن نسخه هاي جديدتر، همه انتظار داشتند زمان بوت نيز در نسخه هاي جديدتر طولاني تر شود، اما مايكروسافت حقيقتا با روند سريع بوت ويندوز XP، همه را غافلگير كرده است. اما مايكروسافت چه كار جديدي را در ويندوزXP انجام داده است؟
اولين چيزي كه روند بوت را سريعتر مي كند، چيزي است كه براي اولين بار با ويندوزXP،Me و ويندوز ۲۰۰۰ ارائه شد يعني Simple Boot Flag يا.SBF SBF ثباتي در حافظه CMOS در تراشهBIOS است و اولين باري كه ويندوز بوت مي شود مقدار دهي ميگردد. SBF سه دسته اطلاعات مهم را در خود نگهداري مي كند، علاوه بر يك بيتparity در انتها كه ويندوز را قادر مي سازد صحت محتواي اين ثبات را بررسي كند.
اولين بيت در اين ثبات، PNPOS نام دارد كه نشان مي دهد آيا سيستم عاملي كه نصب شده است يك سيستم عامل آگاه از ادواتPlug-and-Play هست يا خير. اگر اين بيت بر روي۱ تنظيم شده باشد،BIOS در حالت حداقلي، تنها چيزهايي را كه واقعا لازم دارد بارگزاري مي كند و سپس كنترل را به ركورد راه انداز سيستم عامل مي سپارد. ويندوز هميشه اين بيت را بر روي ۱ تنظيم مي كند. اين كار به تنهايي زمان بوت را كاهش مي دهد.
از آنجا كه BIOS تنها حداقل سخت افزار مورد نياز را راه اندازي مي كند، مي تواند از مواردي چون درگاه هاي ورودي/خروجي ووقفه ها صرف نظر كرده و كنترل و راه اندازي آنها را به ويندوز بسپارد كه بسيار سريعتر اين كار را انجام مي دهد.در حقيقت تنظيم اين ادوات با مقادري نادرست مي تواند به طور جدي ويندوز را در نسبت دهي منابع سيستم به طور پويا، دچار مشكل سازد. پس از بيت PNPOS در ثبات SBF، بيت ديگري به نام BOOTING وجود دارد كه نشان مي دهد آيا آخرين بوت ويندوز موفقيت آميزبوده است يا خير.اگر اين بيت نشان بدهد كه بوت قبلي موفقيت آميز نبوده، BIOS مقدار بيت بعدي را برابر ۱ قرار مي دهد.
آخرين بيت، DIAG نام دارد و مشخص مي كند كه آيا روال هاي بررسي و تشخيص سخت افزارهاي BIOS بايد اجرا شوند يا خير. اگر اين بيت داراي مقدار صفر باشد، يعني در طول بوت قبلي مشكلي رخ نداده در نتيجه از انجام كنترل هاي قديمي سخت افزاري صرف نظر مي شود كه باعث كاهش زمان بوت مي شود.
اما ا گر بوت قبلي موفقيت آميز نبوده باشد، بيتDIAG داراي مقدار۱ خواهد بود و روال هاي كنترل و تشخيص سخت افزار انجام مي شود.
پيش واكنشي (Pre-fetching):
بهبود بعدي و بزرگ هسته ويندوزXP، اضافه شدن قابليت پيش واكنشي به آن است.اين بدين معني است كه راه انداز بوت هسته سيستم عامل، تمامي داده هايي را كه نياز دارد به طور يك جا واكشي مي كند كه باعث كاهش زمان دستيابي ديسك و در نتيجه افزايش سرعت بوت سيستم مي گردد. راه انداز بوت ويندوزXP اساسا به منظور پيش واكشي همزمان درايورها و كدهاي ديگري كه بارگذاري و اجراي آنها در هنگام بوت حياتي و مهم است، تماما از اول بازنويسي شده است. علاوه بر بارگذاري همزمان و موازي درايورها و كدهاي راه انداز، ويندوزXP تا آنجا كه بتواند بارگذاري و راه اندازي درايورها را سريعترانجام مي دهد. در واقع حتي هنگامي كه شما ميز كار ويندوزXP را مي بينيد بسياري از درايورها هنوز نصب نشده اند. در حالي كه نسخه هاي قبلي ويندوز پيش از نمايان ساختن ميز كار، راه اندازي تمام درايورها را كامل مي كردند. به عنوان مثال ويندوز XP درايورهاي شبكه را در اين مرحله بارگذاري مي كند، اما آن ها را تا زماني كه ميز كار بالا آمده و در حال اجرا باشد به طور كامل راه اندازي نمي كند. البته يك استثناي بزرگ براي اين حالت وجود دارد وآن حالتي است كه كامپيوتر شما بخشي از يك Domain شبكه است، كه در آن حالت تمام درايورها بايد تماما پيش از رسيدن به مرحله تاييد ورود كاربرو Login كردن، فعال بارگذاري و راه اندازي شوند. اگر در ويندوزXP شما برخي از منابع شبكه اي مانند درايو شبكه، چاپگرشبكه، سي دي درايو راه دور در شبكه و… به درايوهاي شبكه نگاشت شده اند، دليل اينكه در بسياري از مواقع، درست بعد از بوت، قادر به كار با آنها نمي باشيدهمين امر است.
تسريع و بهبود بزرگ ديگري كه در روند بوت و زمان آن انجام شده است، هنگامي ديده مي شود كه ويندوزXP شروع به چيدن پوياي مكان فيزيكي تاييد درايور در ويندوزXP از نصب بدون اجازه درايورهاي نا معتبرو ناشناس جلوگيري مي كند.
بهبود در حافظه :
بعد از آنكه سيستم بوت شد و بالا آمد، يكي از بهبودهاي اصلي ويندوز يعني روال هاي مديريت حافظه كه تماما از اول بازنويسي شده اند شروع به ايفاي نقش مي كنند.
حافظه بسته به اهميت محتواي آن، توسط ويندوزبه دو دسته تقسيم بندي مي شود. گروه اول، حافظه صفحه بندي نشده است. اين حافظه زمان زمان بسيار زيادي را، حتي براي خود روال مديريت حافظه كه بايد هميشه در حافظه فيزيكي قرار داشته باشد مصرف مي كند. گروه دوم، حافظه صفحه بندي شده است كه اكثريت حافظه سيستم شما را تشكيل مي دهد. استفاده از اين نوع حافظه خطرات كمتري را در مواقع بحراني سيستم در بر دارد و لذا ويندوز مي تواند در صورب نياز به حافظه فيزيكي بيشتر، با خيال آسوده آن را توسط مدير حافظه مجازي به روي ديسك منتقل كند.
ويندوز، حافظه رابه صفحات۴ كيلو بايتي تقسيم بندي مي كند واين صفحات توسط سيستمي ازFlagها مديريت مي شوند كه مدخل هاي جدول صفحات يا Page Table Entries(PTE) نام دارند.هرPTE حاوي اطلاعاتي در باره صفحه اي است كه به آن تخصيص داده شده و نيز شامل اينكه آيا آن صفحه در حال استفاده است يا خير. ويندوزXP تعداد اينPTE هارا به اندازه اي افزايش داده است كه بتواند تا ۱.۳ گيگا بايت حافظه را پوشش دهد كه بدين معني است كه هسته سيستم عامل مي تواند حافظه را به صورت بهينه تري بدون نياز به پاكسازي PTEها و استفاده مجدد از آن ها مورد استفاده قرار دهد.
منبع:مجله شبكه، شماره ۴۹
استاد ايراني دانشگاه واشنگتن ابر رايانه اي استثنايي طراحي كرد
دكتر بهروز شيرازي، استاد و پژوهشگر ايراني دانشگاه واشنگتن با همكاري دستيارانش موفق به طراحي ابررايانه XMT براي شركت CRAY شد.
به گزارش ايسنا، اين ابررايانه منحصر به فرد در تحقيقات و برنامه هاي محاسبه اي كه مستلزم پردازش انبوهي گسترده از داده ها و اطلاعات است، استفاده خواهد شد.
دكتر شيرازي، رييس دانشكده مهندسي برق و علوم رايانه دانشگاه واشنگتن در اين باره گفت: اين سيستم همچنين براي محققان در دانشگاه واشنگتن در دسترس خواهد بود و فرصت ها را براي همكاري هاي علمي و اكتشافي افزايش خواهد داد.
وي خاطر نشان كرد: اين سيستم اساسا يك معماري رايانه اي جديد براي حل مشكلات چالشي بزرگ ارائه مي كند.
شيرازي تاكيد كرد: ابررايانه XMT شركت جهاني CRAY يك كاتاليزور براي تقويت و گسترش همكاري بين محققان اين شركت، آزمايشگاه ملي نورث وست پاسيفيك و نيز محققان دانشگاه واشنگتن خواهد بود.
اين سيستم قرار است در سال 2008 تا سطح يك سيستم توليدي ارتقا پيدا كند.
شركت ساخت ابررايانه هاي CRAY نيز در اين رابطه اعلام كرد كه XMT داراي يك معماري چند رشته اي گسترده و منحصر به فرد و حافظه بزرگ جهاني است و براي كاربردهايي طراحي شده كه مستلزم دسترسي به ترابيت هايي از داده هاي چيده شده در يك الگوي غيرقابل پيش بيني مانند كشف، هوش تجاري و تحليل هاي انرژي است.
گفتني است، دكتر شيرازي و همكارانش همچنين از سال گذشته با دريافت اعتباري پژوهشي بالغ بر 6.1 ميليون دلار از سازمان فضايي ناسا، تحقيقات گسترده اي را در خصوص طراحي و ساخت حسگرهاي جديد با قابليت بهره گيري در نقاطي همچون آتش فشان ها و همچنين سطح سياره مريخ آغاز كرده اند. به گفته آنها يكي از اهداف مهم اين پروژه طراحي الگوريتمي است تا ميزان مصرف انرژي به حداقل برسد.
از نكات مهم ديگر پروژه اين است كه قرار است تا از اين حسگرهاي ويژه طي يك هماهنگي جهاني با سيستم موقعيت ياب جهاني موسوم به (GPS) جهت دريافت اطلاعات دقيق رفتارهاي غير عادي در محيط هاي همچون آتش فشان ها استفاده شود.
منبع : روزنامه كيهان > شماره 18931
راه اندازي يك ابر رايانه با دوچرخه
10 دانشجوي موسسه تكنولوژي ماساچوست (ام آي تي) موفق شدند انرژي موردنياز يك ابر رايانه را به مدت 20 دقيقه تنها با حركت پدال دوچرخه تامين كنند.
گروهي از دانشجويان «ام آي تي» در بوستن آمريكا توانستند جريان الكتريكي لازم براي عملكرد يك ابر رايانه را به مدت 20 دقيقه تنها با حركت پدال دوچرخه تامين كنند و به اين ترتيب نام خود را در كتاب ركوردهاي جهان، گينس به ثبت برسانند.
براساس گزارش Register، راز موفقيت اين ابر رايانه در فعال شدن با نيروي انسان، در مصرف كم اجزاي رايانه اي آن است.
در حقيقت اين رايانه «ام آي تي» كه براي اين آزمايش مورد استفاده قرار گرفت، يك سيستم SiCortex SC648 بر پايه سيستم عامل لينوكس با 648 واحد «سي پي يو» يك ترابايت حافظه و نياز به 1200 وات انرژي است.
اين سيستم مي تواند هر شش «سي پي يو» را تنها با مصرف 8 وات انرژي مورد استفاده قرار دهد. اين درحالي است كه نوت بوكهاي موجود در بازار به طور طبيعي 100 وات انرژي مصرف مي كنند.
يك دوچرخه مي تواند انرژي موردنياز براي فعاليت يك رايانه قابل حمل عادي را به مدت 20 دقيقه تامين كند، به اين 10 دانشجو 15 ژانويه آينده يك جايزه 5 هزار دلاري و يك دوچرخه براي هريك از آنها اعطا مي شود.
منبع : روزنامه كيهان > شماره 19021
سيستم هاي عامل (Operating Systems)
منبع : http://engcomputer.mihanblog.com/More-189.ASPX