سؤال

لا بد لي من مضاعفة 2 (في معظم الأحيان) المصفوفة المتفرقة. هذه المصفوفة جميلة جدًا (حوالي 10K*10K) ولدي اثنين من CORK XEON وخيط واحد فقط لهذه الوظيفة؟

هل هناك أي مكتبة سريعة لتصليح متعدد الخيوط؟ أي نصيحة أخرى؟

هل كانت مفيدة؟

المحلول

سأحاول مسدس, ، من سيرن. إنه قديم بعض الشيء الآن ، لكنه لا يزال يوفر مكتبات ممتازة لما تحاول.

للمعالجة الموازية ، جرب الأحدث كولت الموازي.

نصائح أخرى

مع الاحترام الواجب كولت والموازين ، فهي ليست سريعة جدا. إذا كنت تصر على استخدام Java وتتوقع حسابات رقمية سريعة ، فاستخدم JBLAs. يستخدم JBLAS أطلس. لقد قمت بتجميع JBLAs لاستخدام أطلس متعدد مؤشرات الترابط - لا يفعل ذلك بشكل افتراضي. ستحتاج إلى تغيير بعض خيارات التكوين. ومع ذلك ، حتى JBLAs المفردة المفردة أسرع من colt multithed و colt المتوازي. لقد اختبرت كولت ، كولت الموازي ، JAMA و JBLAS. JBLAS هي الأفضل بحلول ميل ريفي.

كولت والموازية بطيئة جدا. هكذا هو جاما. أفضل مكتبة في جافا لمثل هذه الأشياء هي JBLAS.

هل ذلك على وحدة معالجة الرسومات؟ http://www.nvidia.com/object/io_1254288141829.html

هل نظرت إلى Java Matrix معيار؟ إنه يقارن الأداء بين العديد من أكثر حزم الجبر الخطي Java شيوعًا - بما في ذلك الزوجين اللذين يستخدمان/استدعاء التعليمات البرمجية الأصلية. يعد تكاثر المصفوفة بالطبع أحد الأشياء التي تم اختبارها/مقارنتها وتم تنفيذ آخر تنفيذ مؤشر في الواقع جهاز Intel Xeon رباعي النواة.

ما لا تراه هو كيفية أداء هذه المكتبات باستخدام المصفوفات المتفرقة (أو إذا كانت تدعم ذلك على الإطلاق).

من الممكن الحصول على أداء جيد للغاية من خلال تطبيق Java الخالص ، ولكن إذا كنت تريد أفضل أداء ممكن مع المصفوفات التي يجب عليك "ترك JVM".

نعم ، هناك مكتبات لضرب المصفوفة متعدد الخيوط ؛ دع Google يكون صديقك. على الرغم من أنه إذا لم يكن لديك فقط موضوع متعدد الترابطات قد لا يكون ضروريًا. لماذا لديك موضوع واحد فقط على جهاز 8 نواة؟ مكتبة واحدة يجب مراعاتها هي واجهة Java Blas.

أنت بالتأكيد تتخذ النهج الصحيح ، تبحث عن مكتبة بدلاً من محاولة كتابة هذا بنفسك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top