В чем разница между ласточкиным хвостом и параллелизмом?

Я наткнулся на определение Dovetailing, о котором раньше не слышал. что пришло мне на ум, было Concurrency. Однако я не смог найти ни одного сообщения, касающегося этих двух концепций. Я также прочитал это.

Если я не ошибаюсь, ласточкин хвост каким-то образом связан с машинами Тьюринга и скорее теоретический, но оба они, интуитивно, связаны с распределением исходного кода: выполнение части этого процесса и этого процесса в соответствии с неким предопределенным расписанием или набором правил.

Мой вопрос здесь в том, в чем разница? Или это вообще не сопоставимые понятия?


person MGoksu    schedule 08.03.2016    source источник


Ответы (3)


Ласточкин хвост вовсе не теоретический. Любая ОС, поддерживающая несколько процессов или потоков, использует ласточкин хвост. В противном случае одноядерный ПК не смог бы обрабатывать несколько процессов или потоков. Соединение ласточкиного хвоста — это метод реализации параллельных объектов, таких как потоки. Но параллелизм можно обрабатывать и по-разному. Например. параллельные вычисления могут выполняться графическими процессорами, а большинство современных процессоров имеют несколько ядер, что позволяет выполнять параллельные вычисления без согласования.

person Paul    schedule 08.03.2016

В контексте потоков ласточкин хвост кажется более близким к вытесняющей многопоточности, если мы предпочитаем breadth-first, как описано в Страница в Википедии

Упреждающая многопоточность, заставляет каждый поток покинуть ЦП (квант времени) и через некоторое время (наносекунды) передает управление другим потокам. Двигаться вширь, а не вглубь

person Community    schedule 08.03.2016

Основная цель ласточкиного хвоста в теории — показать, как можно достичь конечной точки любого из бесконечного списка вычислений/задач (если такая конечная точка существует, т. е. вычисления останавливаются) за конечное число шагов. Если вы работаете над вычислениями последовательно, то ничего после первого непрерывного процесса больше выполняться не будет.

Если список процессов не бесконечен, то вы можете выполнить первую команду или все из них, затем вторую и так далее. «Диагональная» идея не нужна. Бесконечные списки процессов, вероятно, не так важны для параллелизма.

person Peter Leupold    schedule 09.03.2016