yigal_s' Journal
 
[Most Recent Entries] [Calendar View] [Friends View]

Sunday, November 7th, 2010

    Time Event
    8:26p
    Последняя теорема Геделя
    Пишут (http://hgr.livejournal.com/1809928.html), опубликовано доказательство существования Бога за авторством Геделя.

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

    Ну, может, кому будет интересно.
    8:53p
    поэкспериментировал немного с interlock-операциями и получил очень странный результат.

    Тестировал, в частности, функцию увеличения на единицу, написаную посредством InterlockedCompareExchange aka CAS. Интересовало меня, сколько раз этот самый CAS "сорвется" т.е. алгоритм уйдет на вторую попытку из за конфликта с другим тредом, при максимальной загрузке компьютера.

    Загрузил я этой функцией увеличения на единицу одной и той же переменной -
    четыре ядра, что не очень серьезно для мультипроцессорного теста,
    но и не так чтоб мало. Уж что было.

    Так вот, даже на четырех ядрах я получил менее одного процента конфликтов, т.е.
    более 99% операций CAS окончились успехом.

    Я сразу же глазам своим не поверил, и ради проверки точности вычисления процентов,
    решил посчитать, сколько же вообще операций CAS в процентах
    я выполнил. Должен был получить что-то около 101% (дополнительный процент за счет конфликтов),
    но получил что-то вроде 140%. При этом, и процент конфликтов подскочил до 40%.

    На самом деле, вот эти 40% - это более менее логичный процент конфликтов, но
    каким образом я смог его получить только лишь введя в цикл инкремент дополнительной переменной -
    общего числа вызовов, я так понять и не смог. Кстати, если попеременно инкрементировать в цикле с помощью CAS две разных переменных, уже не подсчитывая общее число вызовов, то опять же,
    число конфликтов где-то около тех же 40%.

    А вот как четыре ядра могут сделать менее 1% конфликтов, инкрементируя одну и ту же переменную -
    совершенно непонятно.

    UPD: снял точные замеры. Там не 1%, а 0.07%, семь сотых процентов конфликтов!
    При поочередном же доступе через CAS к двум переменным, процент конфликтов уже 51%.

    << Previous Day 2010/11/07
    [Calendar]
    Next Day >>

About LJ.Rossia.org