Здравствуйте, 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];
"Ты должен сделать добро из зла, потому что его больше не из чего сделать." Р.П. Уоррен