Вопросы по теме 'compare-and-swap'
Как реализовать приоритетную блокировку только с помощью compare_and_swap?
Учитывая только сравнение и обмен, я знаю, как реализовать блокировку.
Однако, как мне реализовать спин-блокировку
1) несколько потоков могут блокироваться на нем при попытке блокировки 2), а затем потоки разблокируются (и получают блокировку) в...
213 просмотров
schedule
12.10.2023
В Java какова производительность AtomicInteger compareAndSet() по сравнению с синхронизированным ключевым словом?
Я реализовал очередь экземпляров запросов FIFO (предварительно выделенные объекты запроса для скорости) и начал с использования ключевого слова «synchronized» в методе добавления. Метод был довольно коротким (проверить, есть ли место в буфере...
15872 просмотров
schedule
22.06.2022
Java сравнивает и меняет семантику и производительность
Какова семантика сравнения и обмена в Java? А именно, гарантирует ли метод сравнения и подкачки AtomicInteger только упорядоченный доступ между различными потоками к конкретной ячейке памяти атомарного целочисленного экземпляра, или он гарантирует...
11294 просмотров
schedule
28.02.2023
как компилятор знает, что нельзя оптимизировать операторы изнутри блокировки/разблокировки? используя boost::spinlocks в С++
Класс с двумя перегруженными функциями operator() вызывается из отдельных потоков. См. //комментарии в коде ниже.
Знает ли оптимизатор, что нельзя перемещать entryadd = mSpread * ENTRY_MULTIPLIER выше lock() ?
struct Algo1
{...
409 просмотров
schedule
21.05.2023
Подразумевает ли atomic_cmpxchg() барьеры памяти?
Следующие две цитаты кажутся противоречивыми:
https://www.kernel.org/doc/Documentation/atomic_ops.txt
int atomic_cmpxchg(atomic_t *v, int old, int new);
Это выполняет атомарную операцию обмена сравнением атомарного значения v с...
1826 просмотров
schedule
22.09.2022
атомарные записи и непостоянные чтения
Я разрабатываю многопоточный алгоритм, в котором требуется прочитать последнее значение общей переменной. Записи в переменную являются атомарными (с использованием метода сравнения и замены). Однако чтения не атомарны.
Рассмотрим следующий...
877 просмотров
schedule
16.11.2022
Compare-And-Swap не работает на многих ядрах
Когда я обнаружил инструкцию «CAS», я помню, что хорошо понимал, что она может работать для потоков, работающих на одном процессоре, но я был удивлен, что она может работать для многих процессоров.
Вчера у меня появилась первая возможность...
156 просмотров
schedule
13.01.2023
Как заставить сравнительный обмен принимать мои переменные?
Я пытаюсь смягчить условия гонки для простой функции прогнозирования в реализации библиотечного API (FUSE3), которую я не могу контролировать. Для этого я хочу использовать std::atomic<>::compare_exchange_weak как можно раньше в обратном...
199 просмотров
schedule
22.01.2023
Работает ли этот фрагмент кода C ++ при использовании этих атомарных операций с ослабленным порядком памяти и rel / acq?
Написано псевдокодом cppmem:
int main()
{...
163 просмотров
schedule
10.04.2023
Возникли проблемы с использованием функций атомарных операций numba (cuda.atomic.compare_and_swap)
Я пытаюсь использовать Numba для написания ядер cuda для своего кода. И каким-то образом я хочу использовать атомарную операцию в части своего кода, и я написал тестовое ядро, чтобы увидеть, как работает cuda.atomic.compare_and_swap. В документации...
382 просмотров
schedule
28.11.2023
почему Java Unsafe CAS (getAndAddInt) быстрее, чем код, написанный вручную
Я написал код cas (цикл while для compare_and_set) вручную вместо прямого вызова метода Unsafe.getAndAddInt . Но когда я использую jmh для проверки производительности, он показывает большую потерю производительности, хотя я написал тот же код, что...
246 просмотров
schedule
14.04.2023
Минимум элементов подкачки в списке, чтобы он был таким же, как другой список, и подсчет подкачки в python
Я должен указать в качестве ввода a = [0,1,0,1] и b = [1,0,1,0]
Примечание: элементы обоих списков будут только 0 и 1. Если невозможно сделать их одинаковыми с помощью обмена, я напечатаю -1. Если это то же самое в начале, я напечатаю 0, и если это...
57 просмотров
schedule
21.02.2022
Записывает ли cmpxchg строку кэша назначения в случае сбоя? Если нет, то лучше xchg для спинлока?
Я предполагаю простую спин-блокировку, которая не относится к ОС, ожидая целей этого вопроса.
Я вижу, что простая спин-блокировка часто реализуется с использованием lock xchg или lock bts вместо lock cmpxchg .
Но разве cmpxchg не избегает...
334 просмотров
schedule
18.07.2023