Dima Fomin
ну во первых, в Sun Sparc думаю карточка Nvidia не влезет :) а во вторых, я ковыряюсь уже с готовым расчетом, там массовые поконтрактные расчеты каких-то показателей (вобщем то не важно какие они), но вот эти расчеты распарралелены на 99 тредов/ядер и после окончания обсчета каждого контракта результат добавляется к некому общему итогу (т.е. несколько миллионов раз мутируется общий стейт через CAS).
И вот в этом узком месте суммирования не очень то большой у меня простор для рефакторинга :(
точно суммирование узкое место?
нужно просуммировать 1e8 результатов?
а с какой скоростью они поступают?
из того, что я наэкспериментировал, могу сказать, что LongAdder не нужен, core.async выглядит предпочтительно — есть канал для приёма промежуточных результатов со стороны, есть core.async/reduce
, который сворачивает (и это необязательно суммирование) поступающие результаты многопоточно с использованием всех ядер.