Re[2]: решение проблем синхронизации
От: Khimik  
Дата: 23.03.19 09:40
Оценка:
Здравствуйте, LaptevVV, Вы писали:

CM>>Интересно — есть ли хоть какие-то подвижки в автоматическом распараллеливании и синхронизации многопоточного доступа к разделяемым переменным?

LVV>Например, если твоя задача делается по паттерну "Читатели-писатели", то такое можно заавтоматизировать,
LVV>описав неким образом инфраструктуру данных твоей задачи.
LVV>В общем виде задача не решаема — теорема есть (аналог останова), что невозможно определить, распараллеливается ли задача или нет.

Я мало разбираюсь в теме, и прошу помочь. Если я правильно понял, код, генерируемый на Delphi XE8, на многоядерных компьютерах загружает только одно ядро. Это вообще тоскливо и обидно.
Мне с моей дилетантской точки зрения кажется, что для решения этой задачи нужно в ЯП добавить специальные циклы, в которых соблюдаются определённые условия: в каждом исполнении тела цикла обращение к данным должно быть независимом от предыдущих исполнений. Т.е. может быть такой код:

for i:=0 to count-1 do
  values[i]:=sqr(values[i]);

Но нельзя такой код:

for i:=1 to count-1 do
  values[i]:=values[i-1]+values[i];
"Ты должен сделать добро из зла, потому что его больше не из чего сделать." Р.П. Уоррен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.