Форум: "Прочее";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];
ВнизПридумал свою систему разработки ПО Найти похожие ветки
← →
Кое кто (2008-12-21 16:48) [0]Хотя может такое уже и есть?? Вообщем программа
записываеться в виде таблицы, где столбцы это
отдельные потоки, а каждая строка - это определенный квант времени
Например:
C = A + B | G = A*C
| D = A*G
_____________________
H = I | B = I
|
Здесь C = A + B выполняеться в первом потоке и в этот же момент выполняеться
2 операции G = A*C D = A*G... При этом отдельные ячейки кода могут
также представлять собой такие таблицы... Отдельные прямоугольники
можно выделить как функцию и потом вставлять в других местах...
Хотелось бы услышать ваше мнение?
← →
DVM © (2008-12-21 16:58) [1]
> а каждая строка - это определенный квант времени
как понимать записанные в одной и той же строке, но в разных столбцах разные команды, на одноядерном процессоре?
← →
Кое кто (2008-12-21 16:59) [2]DVM © (21.12.08 16:58) [1]
2как понимать записанные в одной и той же строке, но в разных столбцах разные команды, на одноядерном процессоре?
Это уже дело компилятора, как скомпоновать...
← →
DVM © (2008-12-21 17:14) [3]
> Это уже дело компилятора, как скомпоновать...
но мы то записывая их таким образом, рассчитываем на параллельное исполнение? Иначе какой смысл?
← →
Кое кто (2008-12-21 17:22) [4]2DVM © (21.12.08 17:14) [3]
Она выполняеться также, как и многопоточная программа на Delphi на одноядерном процессоре...
← →
DVM © (2008-12-21 17:24) [5]
> как и многопоточная программа на Delphi на одноядерном процессоре
но две команды из разных потоков не выполняются в один и тот же определенный квант времени, а у тебя в твоем описании получается, что выполняются.
← →
asail (2008-12-21 17:26) [6]
> но мы то записывая их таким образом, рассчитываем на параллельное
> исполнение? Иначе какой смысл?
Какой смысл не знаю, но можно добавить, что, даже на 2-х процессорах время выполнения A+B может быть не равно для A*C...
Хотя, обойти это можно с помощью ожидания: выполнил 1-й поток 1-ю строчку и ждет пока все остальные не отрапортуют об исполнении 1-й строчки тоже... Но смысла тоже не вижу...
← →
Кое кто (2008-12-21 17:27) [7]2DVM ©
Для процессора, конечно, нет... Для ОС да...
← →
DVM © (2008-12-21 17:33) [8]
> Кое кто
Т.е. твое ноу-хау это именно такая запись в виде таблицы?
← →
Городской Шаман (2008-12-21 17:37) [9]
> Кое кто (21.12.08 16:48)
Erlang
Главное в Erlang — его модель легковесных процессов. Перефразируя для Erlang слоган текущего дня «Everything is an object» («Всё является объектом»), можно сказать «Everything is a process» («Всё является процессом»).
Процессы дёшевы, создание процесса занимает не больше ресурсов, чем вызов функции. Единственным способом взаимодействия процессов является асинхронный обмен сообщениями.
При желании процесс может установить связь (link) с другими процессами и по выбору или получить сообщение о их смерти с указанием причины или разделить их участь.
Процесс имеет свой «почтовый ящик», откуда может выборочно читать сообщения, в чём очень помогает сопоставление по шаблону, код проверки «ящика» чем-то похож на программу на awk, нужное выгребается и обрабатывается, остальное остаётся или выбрасывается.
http://ru.wikipedia.org/wiki/Erlang
← →
Кое кто (2008-12-21 17:38) [10]2asail
Естественно, это компилятор берёт на себя... В данном случае, в программе, которую я написал первая строка второго потока выполняеться дольше, чем
первая строка первого потока...Значит после выполнения первой команды первый поток ждет пока все остальные потоки не завершат выполнение команд данной строки...
← →
Кое кто (2008-12-21 17:42) [11]2DVM
Т.е. твое ноу-хау это именно такая запись в виде таблицы?
+Возможность замены одним словом целой таблицы
+В такой системе может быть ещё кучу прибамбасов для удобства...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c