реклама на сайте
подробности

 
 
> TMS320c6678 и многоядерность, Как раскидать задачи на разные ядра ?
Digi
сообщение Dec 23 2013, 11:12
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 150
Регистрация: 20-08-04
Пользователь №: 529



Не могу понять, как в один *.out файл поместить програмные модули, которые должны работать в разных ядрах.
И вообще я еще не понял принцип работы программы в многоядерном процессоре. Я понял я так: К примеру Ядро 0 выполняет задачи передачи данных, обобщение результатов вычислений. Ядра 1-4 вычисляют принятые во внутреннюю память данные и укладывают туда же результаты. Связь между ядрами осуществялется через внутренюю память.
Это правильно или как то иначе ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hoodwin
сообщение Dec 24 2013, 16:23
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Ну, еще бывают кольцевые очереди (FIFO), через которые можно сообщения слать из одного ядра в другое через общую память. Главная фича FIFO, в отличие от связанных списков списков и spinlock-ов, в том, что они гарантируют корректную работу очередей при асинхронном взаимодействии ядер, без спец. команд типа compare and exchange. Ну и операции с FIFO атомарные, O(1).
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Dec 27 2013, 00:34
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



QUOTE (Hoodwin @ Dec 24 2013, 20:23) *
FIFO, в отличие от связанных списков
Ну-ну. FIFO и есть связанный список. Какие отличия???
QUOTE (Hoodwin @ Dec 24 2013, 20:23) *
FIFO [...] гарантируют корректную работу очередей при асинхронном взаимодействии ядер, без спец. команд
Ничего FIFO не гарантирует, синхронизацию доступа надо аппаратными средствами осуществлять, причем в 667х эти средства есть.
QUOTE (Hoodwin @ Dec 24 2013, 20:23) *
операции с FIFO атомарные, O(1)
Экие у вас странные представления о необходимых и достаточных условиях. Из О(1) вовсе не следует атомарность, этот термин для других целей используется.
QUOTE (Hoodwin @ Dec 25 2013, 21:08) *
Формально двусвязный список тоже можно считать очередью (FIFO)
Формально никакая это не очередь, а именно двусвязный список. Очереди вторая связь совершенна не нужна. В n-арном дереве тоже можно найти подграфы, которые можно очередями считать.
QUOTE (jcxz @ Dec 26 2013, 20:40) *
Для взаимодействия ядер я вообще не использовал критических секций. Да, с помощью прерываний и общей памяти их можно организовать, но я не использовал их.
Просто повезло. Не вляпались в ситуацию, когда оба процесса одновременно искалечат индексы первого и последнего элементов очереди. Это же элементарно и называется оверран.


QUOTE (Digi @ Dec 23 2013, 15:12) *
Не могу понять, как в один *.out файл поместить програмные модули, которые должны работать в разных ядрах.
Что бы долго не думать, я собираю несколько исполняемых файлов. В максимуме - восемь.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th August 2025 - 05:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.13602 секунд с 7
ELECTRONIX ©2004-2016