Feb. 1st, 2012

pphantom: (Default)
Интереса ради попробовал соорудить параллелизацию на Прологе (точнее, на SWI Prolog), и в результате обнаружил забавное явление.

В эту реализацию "от рождения" встроена длинная арифметика, поэтому один из механизмов (мьютексы) я попробовал потестировать на программе вычисления факториала (простой, насколько это возможно). В итоге обнаружилось, что получившаяся поделка работает, мягко говоря, существенно быстрее, чем другие реализации того же, оказавшиеся под руками (Maxima и C/C++ с GMP). А именно:
1)  SWI Prolog систематически обгоняет GMP (неважно, C или C++) в два раза. При включении распараллеливания (и там, и там) коэффициент растет и доходит примерно до 3.
2) Maxima проигрывает SWI в несколько десятков раз (но уже факториал миллиона считать попросту отказывается).

Теперь сижу и думаю - с чего бы это...

Profile

pphantom: (Default)
pphantom

February 2017

S M T W T F S
   1234
56789 1011
12131415161718
19202122232425
262728    

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 6th, 2025 07:10 pm
Powered by Dreamwidth Studios