Описание тега memory-fences
Тип инструкции, которая обеспечивает упорядочение заданного набора операций.
2
ответа
Сделать предыдущие хранилища памяти видимыми для последующих загрузок памяти
Я хочу хранить данные в большом массиве с _mm256_stream_si256() называется в цикле. Как я понял, для того, чтобы эти изменения были видны другим потокам, необходим забор памяти. Описание _mm_sfence() говорится Выполните операцию сериализации для все…
01 июл '17 в 18:14
3
ответа
Изменение порядка.Net CompareExchange
Может ли компилятор или процессор переупорядочить следующие инструкции, чтобы другой поток видел a == 0 а также b == 1? Если предположить, int a = 0, b = 0; где-то. System.Threading.Interlocked.CompareExchange<int>(ref a, 1, 0); System.Threadi…
25 авг '14 в 20:00
1
ответ
Каково поведение __faststorefence?
Что касается этого вопроса, меня интересуют только x86 и x86-64. Для MSVC 2005 документация для __faststorefence гласит: "Гарантирует, что каждый предыдущий магазин виден глобально перед любым последующим магазином ". Для MSVC 2008 и 2010 он изменил…
25 июн '11 в 21:22
3
ответа
Заборы исполнения и памяти
Я знаю, что современные процессоры могут работать не по порядку, однако они всегда удаляют результаты по порядку, как описано в Википедии. "Процессоры из Одера заполняют эти" слоты "вовремя другими инструкциями, которые готовы, а затем переупорядочи…
08 сен '11 в 10:52
2
ответа
Установлен ли забор памяти с другими потоками после создания объекта?
Может ли кто-нибудь проверить мое понимание ограничения памяти, установленного после выполнения конструктора. Например, предположим, у меня есть класс Stock. public final class Stock{ private final String ticker; private double qty; private double p…
10 окт '12 в 22:51
1
ответ
В чем (небольшая) разница в расслабляющих атомных правилах?
После того, как Херб Саттерс отлично рассказал о "атомном оружии", я немного запутался в примерах " Расслабленной атомики". Я взял с собой, что атом в модели памяти C++ (SC-DRF = последовательная согласованность для Data Race Free) "получает" при за…
09 июн '13 в 21:29
2
ответа
Где разместить ограждения / барьеры памяти, чтобы гарантировать новое чтение / совершенные записи?
Как и многие другие люди, меня всегда смущали изменчивые чтения / записи и заборы. Так что теперь я пытаюсь полностью понять, что они делают. Итак, предполагается, что энергозависимое чтение (1) демонстрирует семантику захвата и (2) гарантирует, что…
08 фев '14 в 23:10
1
ответ
Заборы с неатомной физикой в С11
Есть ли способ использовать ограждения, чтобы рассуждать о поведении неатомарных операций в C11? В частности, я хотел бы сделать код безопасным в ситуациях, когда необходимо заполнить определенные поля. ints для совместимости со старыми интерфейсами…
08 фев '17 в 20:05
2
ответа
Использование логической переменной volatile для ожидания ожидания
Вопрос возникает после прочтения некоторых кодов, написанных другими разработчиками, поэтому я провел небольшое исследование и нашел статью Андрея Александреску. В своей статье он говорит, что можно использовать переменную логической переменной для …
12 ноя '13 в 15:39
5
ответов
Являются ли энергозависимые операции чтения и записи атомарными в Windows+VisualC?
На этом сайте есть несколько вопросов, спрашивающих, volatile возможна переменная для атомарного / многопоточного доступа: см. здесь, здесь или здесь, например. Теперь, стандартный ответ C(++), очевидно, нет. Однако в компиляторе Windows & Visual C+…
10 авг '11 в 07:42
1
ответ
Являются ли эти определения забора и выпуска забора неправильными?
В книге параллельного программирования Джо Даффи он определяет, как приобретать и отпускать ограждения следующим образом: • Получить забор. Гарантирует, что после забора не будет груза или магазина, который придет после забора. Инструкции до того, к…
18 ноя '14 в 21:39
3
ответа
Что делает mem_fence() в OpenCL, в отличие от барьера ()?
В отличие от barrier() (что, я думаю, я понимаю), mem_fence() не влияет на все элементы в рабочей группе. Спецификация OpenCL говорит (раздел 6.11.10), для mem_fence(): Заказывает загрузки и сохраняет рабочий элемент, выполняющий ядро. (так что это …
06 окт '11 в 12:03
2
ответа
Неправильная документация Java Unsafe.storeFence()?
Java 8 добавила три забора в sun.misc.Unsafe, Я чувствую растерянность после того, как прочитал их документацию. Итак, я искал в Интернете, и нашел эту ссылку. Согласно странице выше, я считаю, что эти методы практически ничего не добавляют на практ…
02 июн '15 в 15:42
5
ответов
Что такое забор памяти?
Что подразумевается под использованием явного забора памяти?
13 ноя '08 в 09:30
1
ответ
Проблемы многопоточности в C++ и проблемы видимости - какова общая практика разработки?
Из моих исследований я знаю концепции голода, тупика, справедливости и других проблем параллелизма. Тем не менее, теория отличается от практики в некоторой степени, и реальные инженерные задачи часто включают в себя больше деталей, чем академические…
31 окт '14 в 23:10
3
ответа
Понимание атомарных переменных и операций
Я читаю о атомарных типах boost и std (C++11) и операциях снова и снова, и все же я не уверен, что понимаю это правильно (а в некоторых случаях я вообще не понимаю). Итак, у меня есть несколько вопросов по этому поводу. Мои источники я использую для…
27 июн '13 в 14:19
4
ответа
Барьер памяти - это инструкция, которую выполняет процессор, или это просто маркер?
Я пытаюсь понять, что именно является барьером памяти. На основании того, что я знаю до сих пор, барьер памяти (например: mfence) используется для предотвращения переупорядочения инструкций с до до и после и после до перед барьером памяти. Это приме…
10 мар '17 в 09:20
1
ответ
Заборы памяти - нужна помощь, чтобы понять
Я читаю "Барьеры памяти" Пола МакКенни http://www.rdrop.com/users/paulmck/scalability/paper/whymb.2010.07.23a.pdf Все объясняется очень подробно, и когда я вижу, что все ясно Я сталкиваюсь с одним предложением, которое сводит на нет все и заставляет…
22 окт '10 в 17:41
2
ответа
Заборы в C++0x, гарантирует только на атомиках или памяти вообще
В проекте C++0x есть понятие "заборы", которое кажется очень отличным от понятия "заборы" на уровне процессора / чипа, или сказать, что ребята из ядра Linux ожидают от заборов. Вопрос в том, действительно ли проект подразумевает крайне ограниченную …
05 апр '11 в 04:29
1
ответ
C++11 Когда использовать ограждение памяти?
Я пишу некоторый многопоточный код C++11, и я не совсем уверен, когда мне нужно использовать забор памяти или что-то в этом роде. Так вот, в основном то, что я делаю: class Worker { std::string arg1; int arg2; int arg3; std::thread thread; public: W…
19 июн '13 в 13:48