Описание тега transactional-memory
В информатике транзакционная память (TM) - это механизм управления параллелизмом, аналогичный транзакциям базы данных для управления доступом к общей памяти при параллельных вычислениях. Это альтернатива синхронизации на основе блокировки. Обычно он делится на аппаратные и программные реализации (HTM и STM соответственно).
1
ответ
__transaction_atomic без поддержки транзакционной памяти
Я просто компилировал код C/C++, используя __transaction_atomic но произошла ошибка компилятора [Error] __transaction_atomic' without transactional memory support enabled Код является: #include <stdio.h> int main() { int i = 0; __transaction_a…
24 дек '15 в 08:46
1
ответ
Таинственный ртм прервать с помощью haswell tsx
Я экспериментирую с расширениями tsx в haswell, адаптируя существующую кодовую базу среднего размера (1000 строк) к использованию транзакционных расширений памяти GCC (которые косвенно используют haswell tsx на этой машине) вместо грубозернистых бло…
06 май '15 в 06:49
4
ответа
Программная транзакционная память - пример компоновки
Одним из основных преимуществ программной транзакционной памяти, которая всегда упоминается, является возможность компоновки и модульность. Различные фрагменты могут быть объединены для получения более крупных компонентов. В программах, основанных н…
01 апр '11 в 20:33
2
ответа
Способ формирования "выбора" на MVars без опроса
У меня есть два MVars (ну, MVar и Чан). Мне нужно вытащить вещи из Чана и обработать их, пока другой MVar больше не будет пустым. Моим идеальным решением было бы что-то вроде UNIX select функция, в которой я передаю список (предположительно пустых) …
04 май '11 в 05:48
1
ответ
Добавление генерации случайных чисел в монаду STM в Haskell
В настоящее время я работаю над некоторыми тестами транзакционной памяти в Haskell и хотел бы иметь возможность использовать случайные числа в транзакции. Я в настоящее время использую Random монаду / монадный преобразователь отсюда. В следующем при…
10 июл '15 в 16:06
2
ответа
Пытаясь понять простые вещи Haskell STM
Я застрял в понимании атомарного понятия в STM. Я иллюстрирую на примере import Control.Concurrent import Control.Concurrent.STM import Control.Monad import qualified Data.Map as Map main :: IO () main = do d <- atomically$ newTVar Map.empty sock…
02 фев '11 в 08:56
1
ответ
Стандартный C++ статус транзакционной памяти
Каково текущее состояние предложения транзакционной памяти для C++17. Будет ли он включен в стандарт, нацелен ли он на включение в какую-то будущую версию стандарта C++, или это всего лишь экспериментальная функция проверки концепции, статус стандар…
19 авг '16 в 09:43
3
ответа
Что такое транзакционная память?
Я в замешательстве, потому что при чтении вики-страницы кажется, что у меня просто есть checkValidate и система коммитов для загрузки и хранения. Является ли целью решить проблемы синхронизации? Это программный продукт, построенный поверх современно…
29 июн '12 в 03:23
1
ответ
Попробуйте Intel TSX
Я хочу опробовать возможности транзакционной памяти Intel, но мне не нужно покупать новый сервер для этого. Существуют ли облачные сервисы с CPUS, которые поддерживают TSX?
21 май '15 в 15:07
3
ответа
Какое преимущество предоставляет новая функция "синхронизированный" блок в C++?
Есть новая экспериментальная функция (вероятно, C++20), которая является "синхронизированным блоком". Блок обеспечивает глобальную блокировку раздела кода. Ниже приведен пример из cppreference. #include <iostream> #include <vector> #incl…
03 авг '17 в 14:28
1
ответ
Почему компилятор XLC в bluegene/q не поддерживает '-qtm'?
У меня проблема с компилятором xlc на BlueGene/q. Версия компилятора xlc - 12.1: IBM XL C/C++ for Blue Gene, V12.1 Version: 12.01.0000.0000 Согласно документу 1, он должен поддерживать опцию компилятора "-qtm", которая используется для включения тра…
09 апр '15 в 20:34
1
ответ
Почему упорядоченные std::map и упорядоченные std::set не приглашены для выполнения транзакции_safe?
Как известно, в Экспериментальном C++ есть транзакционная память TS (ISO/IEC TS 19841:2015): достаточно ли объявить функцию как action_safe, чтобы их можно было использовать как поточно-ориентированные? А также operator[] объявлен как transaction_sa…
03 авг '16 в 15:00
1
ответ
Преобразовать аргумент ref dataType в ptr(dataType) в часовне
Существует ли официальный способ преобразования аргумента, переданного по ссылке, в указатель на тот же тип? Я знаю, что на этапе компиляции CodeGen это ref int становится int *и я знаю, что вы можете сделать это с помощью extern для совместимости с…
08 мар '18 в 15:17
3
ответа
Спать без системных или IO звонков
Мне нужен режим сна, который не выдает никаких системных или IO-вызовов для сценария с аппаратной транзакционной памятью (эти вызовы могут привести к прерыванию). Спать в течение 1 микросекунды, как в usleep(1) было бы просто отлично. Этот вопрос пр…
18 мар '14 в 10:40
3
ответа
Какие алгоритмы используются в Clojure, Haskell (и других языках) для STM?
Как я понимаю, существует несколько различных алгоритмов для реализации программной транзакционной памяти (и это довольно активная область исследований). Где я могу найти (не углубляясь в исходный код), которые используются на разных языках и в библ…
27 ноя '10 в 17:19
1
ответ
Общие компоненты, дружественные к программной транзакционной памяти
Скажем, мы пишем какой-то новый класс, который может использоваться одновременно или нет. Очевидно, что мы не хотим блокировать все на случай, если они будут вызваны одновременно. Одним из способов решения этой проблемы является параметризация с пом…
09 авг '16 в 19:20
1
ответ
Достаточно ли объявить функцию как action_safe, чтобы их можно было использовать поточно-ориентированно?
Достаточно просто объявить все функции как transaction_safe в некоторых мой класс, так что его можно использовать как потокобезопасный в транзакциях atomic_noexcept, atomic_cancel, atomic_commit из экспериментальной транзакционной памяти TS? Как изв…
29 июл '16 в 16:20
3
ответа
Что нужно для того, чтобы транзакционная память была жизнеспособной?
Я работал над транзакционной памятью и ее жизнеспособностью для системного программирования (базы данных, операционные системы, серверы и т. Д.). Мой собственный опыт использования транзакций вместе с тем, что я видел, как немногие сообщества исполь…
19 ноя '09 в 17:22
3
ответа
Чем Clojure STM отличается от Haskell STM?
Я пытаюсь найти различия между тем, что Clojure называет STM, и тем, что реализовано в Haskell как STM. Отбросив фактические языковые семантические различия, я немного запутался, поскольку Рич Хики говорит в своей речи, что реализация STM в Clojure …
30 дек '10 в 06:47
1
ответ
Java: реинжиниринг параллелизма библиотеки с открытым исходным кодом
В рамках некоторого анализа структур JVM STM я рассматриваю вопрос о реорганизации механизмов блокировки библиотеки с открытым исходным кодом для использования вместо нее STM. Затем я бы провел несколько тестов, чтобы сравнить производительность, пр…
09 дек '12 в 18:35