متعدد النواة هاسكل على نظام التشغيل Windows
-
05-07-2019 - |
سؤال
لقد قرأت عددًا من دروس على هاسكل.ومع ذلك، لم أتمكن من تشغيل التطبيق المترجم على معالج متعدد النواة (لدي Intel Quad Core) ويندوز (32 بت).
لقد حاولت عددا من الأشياء:
ولكن لا حظ.
يعمل التطبيق المترجم بنسبة 100% على نواة واحدة فقط.
أيه أفكار؟
شفرة:
import Control.Parallel
import Control.Monad
import Text.Printf
fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = l `pseq` r `pseq` l+r
where
l = fib (n-1)
r = fib (n-2)
main = forM_ [0..350] $ \i ->
printf "n=%d => %d\n" i (fib i)
المحلول
إذا كان vili صحيحًا (لا يمكنني إجراء الاختبار لأنني لا أملك أيًا من صناديق MS)، فقد يكون الأمر مرتبطًا بـ هذا الخطأ
نصائح أخرى
يبدو أن استخدام par بدلاً من pseq يعمل على إصلاح المشكلة.
لا تنتمي إلى StackOverflow