memory-model — все вопросы

1ответ
4 голоса
Как мне сделать пошаговую копию из глобальной в локальную память?
Я хочу скопировать некоторые данные из буфера в глобальной памяти устройства в локальную память ядра обработки, но с изюминкой. Я знаю о async_work_group_copy и это приятно (точнее, это клёво и
1ответ
4 голоса
Как кэши данных маршрутизируют объект в этом примере?
Рассмотрим схематическую архитектуру кеша данных. (Искусство ASCII следует.) -------------------------------------- | CPU core A | CPU core B | | |------------|------------| Devices
2ответа
4 голоса
Как виртуальная машина Java реализует модель памяти «происходит раньше»?
Модель памяти Java основана на отношении «происходит раньше», который обеспечивает соблюдение правил, но также позволяет оптимизировать реализацию виртуальной машины с точки зрения недействительност
3ответа
4 голоса
Правильно ли синхронизированная программа все еще допускает гонку данных? (Часть I)
Есть два вывода из JLS:C1: Если в программе нет гонок данных, то все исполнения программы будут выглядеть последовательно согласованными: ---- +: = 0 =: + ----C2: Если программа правильно синхронизиро
5ответов
4 голоса
Производительность против модели памяти C ++
Благодаря новым возможностям параллелизма совместно используемой памяти в C ++ 11 возможно, что два потока могут выделять память одновременно.Более того, поскольку компилятор не знает заранее, будет л
1ответ
4 голоса
Безопасен ли mov + mfence для NUMA?
Я вижу, что g ++ генерирует простое ---- +: = 0 =: + ---- для ---- +: = 1 =: + ---- и ---- +: = 2 =: +---- + ---- +: = 3 =: + ---- для ---- +: = 4 =: + ---- .Рассмотрим этот классический пример:в кото
1ответ
4 голоса
C ++ представление значений нетривиально копируемых типов
Текущий проект стандарта C ++ (март 2019 г.) имеет следующий параграф ([basic.types] p.4) (выделено мной):Объектное представление объекта типа T - это последовательность из N беззнаковых объектов char
3ответа
4 голоса
Параллельные записи одного и того же значения
У меня есть программа, которая порождает несколько потоков, которые могут записывать одно и то же значение в одну и ту же область памяти: std::vector<int> vec(32, 1); // Initialize vec with
3ответа
4 голоса
C ++ memory_order_consume, kill_dependency, зависимость-упорядоченный-до, синхронизируется-с
Я читаю C ++ Concurrency in Action Энтони Уильямса.В настоящее время я нахожусь в точке, где он описывает memory_order_consume.После этого блока есть:Теперь, когда я рассмотрел основы упорядочения пам
2ответа
4 голоса
Java - требуется ли энергозависимость с синхронизированным?
В следующем простом сценарии:Должен ли х быть изменчивым?Я знаю, что синхронизированный гарантирует атомарность, но я не уверен насчет видимости, хотя ... блокировка -> изменение -> разблокировк
4ответа
9 голосов
Путаница с ошибкой реализации в деструкторе shared_ptr
Я только что видел выступление Херба Саттера: C ++ и после 2012 года: Herb Sutter - atomic <> Оружие, 2 из 2 Он показывает ошибку в реализации деструктора std :: shared_ptr: if( control
6ответов
10 голосов
В C /C ++ гарантированно, что изменчивые переменные в конечном итоге будут иметь согласованную семантику между потоками?
Есть ли гарантия по какому-либо общепринятому стандарту (ISO C или C ++, или любая из спецификаций POSIX /SUS), что переменная (возможно, отмечен как изменчивый), не защищенный мьютексом, к которому
3ответа
12 голосов
Что означает «пересылка из буфера» в руководстве разработчика Intel
Руководство разработчика программного обеспечения для архитектуры Intel 64 и IA-32 далее о переупорядочении действий одним процессором (раздел 8.2.2, «Упорядочение памяти в P6 и более поздних семе
5ответов
13 голосов
Стандарт C ++: можно ли поднять блокированные атомарные хранилища выше блокировки мьютекса?
Есть ли в стандарте какая-либо формулировка, гарантирующая, что ослабленные хранилища для атомарных элементов не будут отменены над блокировкой мьютекса? Если нет, то есть ли какая-либо формулировка
2ответа
13 голосов
C # переменная свежесть
Предположим, у меня есть переменная-член в классе (с атомарным типом данных чтения /записи): bool m_Done = false; А потом я создаю задачу, чтобы установить ее в true: Task.Run(() => m_Done
2ответа
14 голосов
Разница между memory_order_consume и memory_order_acquire
У меня вопрос по статье GCC-Wiki . Под заголовком «Общая сводка» приведен следующий пример кода: Тема 1: y.store (20); x.store (10); Тема 2: if (x.load() == 10) { assert (y.load() == 20
4ответа
17 голосов
Подразумевает ли модель памяти Java (JSR-133), что вход в монитор сбрасывает кэш-память данных ЦП?
Есть кое-что, что мешает мне с моделью памяти Java (если я даже все правильно понимаю). Если есть два потока A и B, нет никаких гарантий, что B когда-либо увидит значение, записанное A, если только
5ответов
18 голосов
Алгоритм Петерсона в Java?
Есть ли пример реализации алгоритма Петерсона для взаимного исключения в Java?
3ответа
27 голосов
Можно ли наблюдать частично построенный объект из другого потока?
Я часто слышал, что в модели памяти .NET 2.0 записи всегда используют ограждения выпуска. Это правда? Означает ли это, что даже без явных барьеров или блокировок памяти невозможно наблюдать частично

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132