cl-bpnet: sync fix

Sep 11, 2010 04:13

Вы меня так заклевали в прошлом посте по поводу спинлоков, что я был вынужден согласиться :)

Да, действительно, существует ненулевая вероятность условий, когда спинлок впустую выжрет ресурсы процессора, воспрепятствовав таким образом полезной их трате на что-нибудь более насущное.

Толстый коммит в библиотеку cl-bpnet меняет механизм ( Read more... )

code, cl-bpnet, library, common lisp, spinlocks, lisp, semaphores, commit

Leave a comment

Comments 2

(The comment has been removed)

thedeemon September 11 2010, 10:58:29 UTC
присоединяюсь к вопросу

Reply

swizard September 11 2010, 11:25:01 UTC
Конечно проводил, они вполне оправдывают мои ожидания.

Скорость упала процентов на десять, system time заметно вырос, плотность загрузки ядер снизилась с 300% (на трех воркерах) до где-то 274%.

Зато стало предсказуемо себя вести в случае нехватки процессорных ресурсов.

Короче, резюме таково: волшебной кнопки "сделать пиздато", как обычно, не получилось :) Максимальной производительности нейросети можно добиться, включив use-spin-lock в опциях и руками экспериментируя с количеством воркеров на конкретной машине.

В дефолтном случае имеет смысл оставить семафоры, выставить количество воркеров равным количеству ядер и смириться с неполной отдачей машины :)

Reply


Leave a comment

Up