Описание тега atomic

Атомарная операция неделима. Этот термин используется, среди прочего, для описания транзакций в базах данных, низкоуровневого доступа в многопоточных программах и операций файловой системы.
1 ответ

Атомная переменная Vs. Атомная операция

Допустим, у меня есть две общие переменные - a а также b - которые связаны друг с другом. Когда несколько приложений совместно используют эти общие переменные, доступ к ним должен быть атомарной операцией, в противном случае связь может нарушиться. …
1 ответ

Выполнить несколько запросов, где все успешно или все не удалось

Мне нужно обновить 2 строки в 2 разных таблицах, а затем вставить новую строку в другую другую таблицу, что необходимо сделать так, чтобы все они успешно выполнялись или не выполнялись. (Думаю слово атомарно?). Я провел некоторый поиск, но могу толь…
23 мар '16 в 05:22
1 ответ

Правильный способ создать thread_safe shared_ptr без блокировки?

Я пытаюсь создать класс с потокобезопасным shared_ptr. Мой пример использования заключается в том, что shared_ptr принадлежит объекту класса и ведет себя как единый объект (функция CreateIfNotExist может быть запущена любым потоком в любой момент вр…
03 окт '16 в 14:17
0 ответов

Как затраты на атомарные операции варьируются в зависимости от архитектуры?

Как соотносятся затраты на атомарные операции в обычных архитектурах (x86(версия), arm(версия) и PowerPC(версия))? Бонусные баллы, если вы включили исходную оценку циклов и объяснили ее в терминах "Сортировка памяти C11" или включили инструкции, исп…
1 ответ

Есть ли в Go независимый от ОС способ атомарной перезаписи файла?

Если файл уже существует, я хочу перезаписать его. Если его не существует, я хочу создать его и написать в него. Я бы предпочел не использовать стороннюю библиотеку, такую ​​как lockfile (которая, кажется, обрабатывает все типы блокировок). Моей пер…
21 май '15 в 22:11
0 ответов

Потоковый атомарный класс: memory_order_seq_cst VS memory_order_relaxed

Я изучаю параллелизм, читая книгу Энтони Уильямса "Параллельность в C++ в действии". Это отличная книга. Мне трудно понять разницу между моделью памяти в атомарном классе. Например, memory_order_seq_cst против memory_order_relaxed, я надеюсь, что лу…
05 сен '17 в 14:18
1 ответ

"Атомный" вызов cout в MPI

Меня интересует, есть ли команда или методика в OpenMPI для атомарного вызова для записи в стандартный вывод (или, в этом отношении, в любой поток). Что я заметил, так это то, что во время выполнения программ MPI вызовы для записи в cout (или другие…
09 апр '13 в 11:56
1 ответ

Для каких размеров обычная загрузка и сохранение в глобальной памяти в CUDA Atomic?

Являются ли общие операции чтения и записи в глобальной памяти атомарными в CUDA, если: Это 4-х байтовая инструкция? (Я предполагаю, что да) Это 8-байтовая или 16-байтовая инструкция? (Я предполагаю, что да) По крайней мере, на Кеплере и Ферми обычн…
25 дек '13 в 17:03
1 ответ

CUDA, mutex и atomicCAS()

Недавно я начал разрабатывать CUDA и столкнулся с проблемой atomicCAS(). Чтобы сделать некоторые манипуляции с памятью в коде устройства, мне нужно создать мьютекс, чтобы только один поток мог работать с памятью в критической части кода. Код устройс…
24 янв '14 в 20:03
2 ответа

MongoDB: увеличить целочисленное поле (C#)

Как увеличить целочисленное поле атомарным способом? Может ли метод FindAndModify помочь? Например, документ содержит поле count и я хочу увеличить его без получения полного документа и сохранения обратно.
24 апр '12 в 12:23
2 ответа

Почему использование ключевого слова volatile для разделяемой памяти невозможно, когда атомарные операции выполняются в разделяемой памяти?

У меня есть фрагмент кода CUDA, в котором потоки выполняют атомарные операции с общей памятью. Я думал, так как результат атомарной операции будет виден другим потокам блока в любом случае мгновенно, возможно, было бы хорошо поручить компилятору име…
13 апр '14 в 16:55
2 ответа

Почему std::atomic's Compare_exchange принимает ссылку на ожидаемое значение?

В чем причина std::atomic<T>::compare_exchange_* принять ожидаемое значение по ссылке, а не по значению?
14 ноя '13 в 19:49
2 ответа

Сбой сравнения_обмена для std::shared_ptr в msvs 2013?

Посмотрите на образец, пожалуйста std::atomic < std::shared_ptr < int > > a; std::shared_ptr < int > b; std::shared_ptr < int > c = std::make_shared < int > (10); while(a.compare_exchange_weak(b, c)); assert(a.load() ==…
27 дек '13 в 17:48
2 ответа

Что быстрее в CUDA: запись в глобальную память + __threadfence() или atomicExch() в глобальную память?

Предполагая, что у нас есть много потоков, которые будут последовательно обращаться к глобальной памяти, какой вариант работает быстрее в целом? Я сомневаюсь, потому что __threadfence() учитывает все записи в общую и глобальную память, но записи объ…
20 июл '12 в 19:57
0 ответов

Как решить "порядок памяти во время выполнения" в AtomicPointer из leveldb?

// Gcc on x86 inline void MemoryBarrier() { // See http://gcc.gnu.org/ml/gcc/2003-04/msg01180.html for a discussion on // this idiom. Also see http://en.wikipedia.org/wiki/Memory_ordering. __asm__ __volatile__("" : : : "memory"); } ' asm volatile ("…
09 авг '17 в 01:32
0 ответов

Parse.com атомарный безопасный подход для создания PFObjects из iOS?

Из приложения iOS, вошедшего в систему PFUser, можно создать объект с именем класса "X". X имеет атрибут name, и во всей системе может быть только один объект X с таким именем. Любой пользователь в iOS может создать объект X, предоставив ему имя. По…
27 июл '14 в 16:17
1 ответ

Поле обновления Solr на основе другого поля

Мне нужно создать новое поле в моей базе данных Solr. Мои данные похожи на:{id: "что-то", name_s: "какое-то имя" } Я хочу добавить новое поле name_t. Проблема в том, что я хочу обновить новое поле name_t значением name_s. И я хочу сделать это со все…
14 фев '17 в 16:14
1 ответ

Какие-нибудь недостатки для std::atomic_flag, не обеспечивающего операции загрузки или хранения? (Пример Spin-Lock)

Сравнивая std::atomic_flag для std::atomic_bool (ака std::atomic<bool> мне кажется, что std::atomic_flag просто имеет более простой интерфейс. Он обеспечивает только тестирование + установку и очистку флага во время std::atomic_bool также обес…
29 авг '18 в 07:05
1 ответ

Атомная операция в многопоточном рабочем месте

Достаточно ли безопасны атомарные операции, чтобы использовать их в многопоточных приложениях, не вызывая состязаний и других проблем с параллелизмом? Допустим, мы не беспокоимся о видимости (мы читаем / пишем все с процессора).
27 окт '17 в 07:05
1 ответ

Атомная согласованность

Мой лектор по курсу баз данных, который я беру, сказал, что преимущество баз данных NoSQL заключается в том, что они "поддерживают атомарную согласованность одного агрегата". Я понятия не имею, что это значит, может кто-нибудь объяснить мне?
09 июн '17 в 23:19