Проблема в том, что мы не знаем, в каком месте Поток1 будет исполняться, когда Поток2 увеличит его Current на Delta. Например, это может произойти...
Там ещё (в предыдущем коде) я по запаре вместо esi использовал ebx в паре мест (в адресации). И всё-таки реализация накладывает свои коррективы...
Всё, я придумал более интересный вариант! В кодах выше при очень быстрых циклах перехват невозможен, т.к. cmpxchg8b будет возвращать всё время nz,...
Очепятка, ёлы-палы, не lock cmpxchg [ThreadCounters+edi*8],ecx там, а lock cmpxchg8b [ThreadCounters+edi*8] конечно же! Сначала хотел сделать без...
Это задача программиста, использующую параллельный for. А одна из моих задач, как автора этого механизма, минимизировать lock'и. Чтобы даже если...
Ну тут опять lock, хотя не на каждой итерации. По сути, это не сильно отличается от моего 3-го варианта в первом сообщении. Только у меня без...
Про критические секции и иже с ними семафоры и мьютексы речи даже не идёт. Операция относительно недорогая, когда нет lock'ов из нескольких...
А что у нас товарищ Pavia молчит, как партизан? :)
Вот не надо! Assembly проводится, CC (правда, там засилие спектрумистов) и DiHalt тоже. И если глянуть на ftp://ftp.scene.org/pub/parties/, то там...
SadKo, здесь можно и lock xadd'ом обойтись для вычитания единицы, гораздо эффективнее будет. Другой вопрос (принципиальный) – как сделать так,...
Эээ. Вообще, нормальные сценеры далеко не бегинеры :) Лучше тогда в WASM.GRAPHICS. Описание: "Демосцена, создание и обсуждение demo/intro".
Кстати, кто мне скажет: может ли поток, выполняющий операцию с lock'ом вклиниться между микрооперациями, скажем, инструкции dec? Т.е.: time...
Я тут ещё прикинул, что лучше хранить номер последней итерации и кол-во оставшихся итераций (для каждого потока). Рабочий поток будет на каждом...
Привет всем! Есть предложение добавить несколько разделов :) 1. WASM.SCENE – обсуждение демосцены. Очень интересная, ИМХО, тематика, достойная...
Вернее, не начальное значение нужно хранить, а номер следующей итерации. Более того, тут уже попахивает cmpxchg8b, ибо между нашим xchg ICx и...
Ещё и начальное значение нужно хранить, чтобы "отбирающий" поток знал, с какого места ему продолжать (т.к. "отбираемый" мог тоже у кого-то...
Ещё такой момент интересует: т.к. итерации всё равно будут идти не совсем последовательно (скажем, 1,3,2,5,4,6,7,9,8,11,10,13,12...), может,...
Логика немного другая. Число рабочих при кладке кирпича должно равняться кол-ву строительных лесов * 2 (чтобы пока один намазывает раствор, другой...
Что значит плавающее? Как оно должно определяться? Я хочу создавать потоки заранее, чтобы при многократном использовании for'а не тратить время на...
Всем привет! Решил написать небольшой include для fasm под Windows, который будет позволять выполнять параллельные вычисления для for-циклов по...
Имена участников (разделяйте запятой).