2017-02-04 3 views
0

Я пытаюсь понять разницу между потоковым портом и @parallel аннотацией в потоках IBM info-sphare, я искал много мест, но «не мог получить ответы на мои вопросы я понимаю, что оба они полезны при создании оператора, но я не уверен, когда и где их использовать, и может ли он использоваться вместе для повышения производительности. Может кто-то, пожалуйста, подтвердите их использование примерами.разница между threadedport и параллельной аннотацией в потоках infosphere ibm

Спасибо.

ответ

1

Резьбовые порты в основном о параллелизм трубопроводов. При указании резьбовую порта на config пункте оператора, вы сообщаете выполнения для выполнения этого оператора с другим потоком из потока, который выполняет оператор вверх по течению. Мы называем этот параллельный параллелизм, потому что операторы в конвейере могут выполняться одновременно. Если операторы в вашем конвейере достаточно вычислительно дорогие, это может повысить пропускную способность.

Аннотации @parallel в основном о данные параллелизма. Когда вы применяете аннотацию @parallel(width=N) к вызову оператора, потоки будут реплицировать этот оператор N раз. В вашем рабочем приложении будет N экземпляров этого оператора, каждый из которых получает различное подмножество общего количества кортежей. Мы называем этот параллелизм данных, потому что мы обрабатываем разные данные (которые являются кортежами, в случае потоков) одновременно, реплицируя оператор. Когда у вас есть оператор, который вычислительно дорогой, и нормально обрабатывать входящие кортежи не по порядку, @parallel может повысить пропускную способность.

На практике использование аннотации @parallel будет иногда включать потоковые порты в ваше приложение, чтобы убедиться, что выполнение реплицированного оператора происходит параллельно. Это, как побочный эффект, также приведет к некоторому параллелизму трубопроводов.

Это приложение демонстрирует как резьбовые порты и @parallel: streamsx.demo.logwatch. Это исходный код приложения, разработанного в презентации Optimizing Streams Applications.

+0

Спасибо за объяснение, кажется, есть очень тонкая грань между трубопроводом и parallism данных, вы можете дополнительно объяснить или дать некоторые ссылки, чтобы исследовать больше по этой теме. – Sal

+0

В общем, существует четкая линия между конвейером и параллелизмом данных. Однако то, как они реализуются в потоках, означает, что введение параллелизма данных часто также приводит к некоторому параллелизму трубопроводов. Это является естественным результатом модели потокового программирования, поскольку она явно разработана для того, чтобы добиться параллелизма трубопроводов. Для более общих дискуссий см записи Википедии для трубопровода (https://en.wikipedia.org/wiki/Pipeline_(computing)) и данных (https://en.wikipedia.org/wiki/Data_parallelism) параллелизм. –

Смежные вопросы