LINUX.ORG.RU

Linux и симметричная многопроцессорная система


0

0

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

>>> Подробности

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

Статья интересная для общего развития.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

Ниочем, щяс как раз рулят asmc и прочие вариации на тему.

anonymous
()
Ответ на: комментарий от Quasar

Речь идет о компьютерных системах и применении на них операционной системы Linux. Потому что есть сомневающиеся

totem
()

>уществует физическое ограничение, когда тактовый генератор просто не может работать быстрее.

На сколько мне известно, там несколько другое ограничение. Хотя и связанное с тактовой частотой. ;)

anonymous
()

> Системные требования Для запуска примеров из данного руководства минимальные системные требования следующие: компьютер с ОС Microsoft Windows XP с установленным ПО AIDE и Apache Tomcat V5. Интерфейс приложения JMX (API) входит в платформу Java 2 стандартной версии (J2SE) V5.0, поэтому особой установки не требуется (если у вас установлен J2SE V5.0).

Эта пять!

Virun
()
Ответ на: комментарий от Quasar

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

>Статья интересная для общего развития.

Хм.
Не программист, но мысль интересна.
А что мешает на один проц повесить системму, а на остальной(ые) - задачи?
Причем, избранные.

Если не прав, то поправьте.

ИМХО, для вирутализаций - должно, классно помочь.

ManJak ★★★★★
()

Статья не понравилась. Бросаются в глаза "неточности".

>Ранние SMP системы Linux были слабосвязанными многопроцессорными системами, то есть построенными из нескольких отдельных систем, связанных высокоскоростным соединением (таким как 10G Ethernet, Fibre Channel или Infiniband). Другое название такого типа архитектуры -- кластер

Бугага, это уже не smp, а многомашинная система. Тоже мне, сравнили usb с пальцем.

Хотя сами же выше пишут

>Архитектура SMP -- одна из тех, где два или более идентичных процессоров соединены друг с другом посредством разделяемой памяти.

Я бы еще общую ОС добавил, ну да ладно, не буду уже к "деталям" придираться. :D

Лучше все же черпать знания из проверенных источников.

anonymous
()

>Вспомните, что сила SMP заключается в TLP.

Эта пять! Если учесть, что tlp во всем тексте встречается лишь единожды, тут. Может кто-то перевести?

буга.. сила smp в абвгд. :D

anonymous
()
Ответ на: комментарий от ManJak

> А что мешает на один проц повесить системму, а на остальной(ые) - задачи?

Ничего не мешает. Хотя, вру, сломанный пакетный манагер может помешать.

Gharik
()
Ответ на: комментарий от ManJak

> А что мешает на один проц повесить системму, а на остальной(ые) -
> задачи?

ничто не мешает. много где примерно так и делается. но если делать так, то в случае одной задачи нет никакой разницы сколько там ядер. под одну задачу задействовано будет максимум одно ядро.
в смысле что девять женщин все равно не родят ребенка за месяц :) а требуется именно это

Tester ★★★
()
Ответ на: комментарий от Tester

>в смысле что девять женщин все равно не родят ребенка за месяц :) а требуется именно это

Ух ты! Хоть кто-то на лоре читает классическую литературу. =О 8)

anonymous
()

Кто знает что-то типа фреймворка в котором можно управлять очередью задач. Что-то очень простенькое, но в тоже время эллегантное :) Достаточно приоритетов и управления порядком выполнения.

Типа: queue_task -maxtasks 5 queue_task -run task1 queue_task -run task2 queue_task -run wait3 -wait task1 queue_task -remove task1 queue_task -list

anonymous
()
Ответ на: комментарий от anonymous

Кто знает что-то типа фреймворка в котором можно управлять очередью задач. Что-то очень простенькое, но в тоже время эллегантное :) Достаточно приоритетов и управления порядком выполнения.

Типа: queue_task -maxtasks 5

queue_task -run task1

queue_task -run task2

queue_task -run wait3 -wait task1

queue_task -remove task1

queue_task -list

anonymous
()
Ответ на: комментарий от anonymous

> Кто знает что-то типа фреймворка в котором можно управлять очередью задач

openPBS, Torque, Sun GridEngine ?

anonymous
()
Ответ на: комментарий от ManJak

>А что мешает на один проц повесить системму, а на остальной(ые) - задачи?

>ИМХО, для вирутализаций - должно, классно помочь.

Ага, если еще каждому процессору назначить свой винчестер, сетевку и др. то поможет :)

По поводу статьи, лично меня покоребила фраза "При достижении этого предела вы можете использовать гораздо лучший подход и применить несколько процессоров" --- ИМХО, несколько процессоров --- это не гораздо лучший подход, а вынужденный, так как частоту поднимать не удается...

mky ★★★★★
()
Ответ на: комментарий от anonymous

> Но лучше не мучитесь с кластерами, asmc заюзывайте.

И что же такое asmc?

del
()
Ответ на: комментарий от anonymous

>Типа: queue_task -maxtasks 5
>queue_task -run task1

man qsub
man qhold


>queue_task -remove task1

man qdel

>queue_task -list

man qstat

А еще лучше сразу  man xpbs (для домохозяек ;))

http://www.doesciencegrid.org/public/pbs/xpbs.html

А вообще список уже привели ... ну можешь еще глянуть cleo из альтернатив.


PS: Сам юзаю Torque

sS ★★★★★
()
Ответ на: комментарий от anonymous

>omp > Но лучше не мучитесь с кластерами

А еще лучше жевать чем говорить ... :)

sS ★★★★★
()
Ответ на: комментарий от mky

> Ага, если еще каждому процессору назначить свой винчестер, сетевку и др. то поможет :)

man Межделмаш и партишионинг.

Gharik
()
Ответ на: комментарий от Tester

ну.. с другой стороны после 9 месяцев у вас появится сразу 9 детей вместо одного, что фактически означает, что прирост производительности 9 женщин по сравнению с одной составляет 800%. Если у вас пероиод времени на выполнение задачи по увеличению населения больше чем 9 месяцев, то это очень хороший способ повысить производительность )).

ЗЫ. Читать так: если произведение П = (времени, нужного для выполнения задачи на одном процессоре * на количество задач) достаточно велико, чтобы быть заметным человеку, и частное Ч = П/(количество процессоров N) для человека заметно меньше П, и задачи легко разделяются между процессорами (как вынашивание детей между женщинами:) ) то многопроцессорная система даст заметное для человека увеличение производительности. Моё скромное мнение.

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

Каждый раз когда я читаю в переводе новости с ибм, мне кажется что перевод делает какой то бот.

Уж точно не технарь для которого русский - родной. И слишком много воды, мусора ни о чем. Вроде бы ит ресурс, для итишников, а чувствуется обращение как в психушке - врача с "потцыэнтом" - "да вы не волнуйтесь так, все будет хорошо, дада, именно так, голубчик, вот лучше скушайте таблетку и выпейте микстуру, это вам поможет".

Полезной информации как правило от силы 1%.

anonizmus
()
Ответ на: комментарий от anonymous

> Кто знает что-то типа фреймворка в котором можно управлять очередью задач. Что-то очень простенькое, но в тоже время эллегантное :) Достаточно приоритетов и управления порядком выполнения.

Спасибо всем посоветовашим!

anonymous
()
Ответ на: комментарий от anonymous

asmc это типа из оперы с тесла и pciexpress карточками с cell'ом.

Получаюется дешевле любого кластерного решения во многие разы. Хотя всетаки и не бросовой.

anonymous
()
Ответ на: комментарий от anonymous

Отстой это, статейка 2004 г. ты че рубанулся? Тогда мы еще с 2.4 колипались, Google был не public, а VMWare не были такими наглыми.

anonymous
()
Ответ на: комментарий от anonymous

> >Вспомните, что сила SMP заключается в TLP.

> Эта пять! Если учесть, что tlp во всем тексте встречается лишь единожды, тут. Может кто-то перевести?

> буга.. сила smp в абвгд. :D

скорее всего thread-level parallelism хотя статью не читал, гуглить про гранулярность параллелизации

filin ★★
()
Ответ на: комментарий от filin

может и task-level но при упоминании про smp это вроде ни к чему

filin ★★
()

вообще, главная проблема как всегда в головах :(((

"Крупный банк в одной из Скандинавских стран, в течение полутора лет силами группы из 15 разработчиков создавал систему на базе технологии CORBA. За три месяца до пуска системы было «неожиданно» принято решение о прогоне тестов на производительность, в высоких показателях которой ни у кого из разработчиков не возникало и тени сомнения. По спецификациям, система должна была обеспечивать работу до тысячи биржевых брокеров, одновременно торгующих акциями.

Первые же тесты показали, что при симуляции уже лишь 120 «виртуальных пользователей» один шаг аутентификации (login) занимал около 40 секунд. При более детальном анализе выявилось, что несколько базовых модулей системы совершенно не масштабируемы. Классический подход типа «а мы добавим еще два 4-процессорных сервера» дал прирост производительности всего лишь на 15%. Доводка системы неожиданно для руководства проекта потребовала тысячу дополнительных человек-часов. В результате проект был сдан на два месяца позже ожидаемого срока, так и не придя в соответствие с требованиями. Его окончательная доводка проводилась «на лету» в течение полугода после начала коммерческого использования."

http://www.osp.ru/os/2002/05/181457/_p2.html

filin ★★
()
Ответ на: комментарий от filin

>корее всего thread-level parallelism хотя статью не читал

А там и читать нечего

PS: TLP - да, это thread level parallelism

есть еще ILP - instruction level parallelism

sS ★★★★★
()
Ответ на: комментарий от sS

превед Сергей,

наверное ты решил организовать подставу и прикинуться "дурачком" :), ну лана, надеюсь линуксёнкам будет полезно (неплохой ликбез):

"Parallel Execution Models

You can compare the available models for parallel programming on two features: granularity The relative size of the unit of computation that executes in parallel: a single statement, a function, or an entire process...

Process-Level Parallelism...

Thread-Level Parallelism...

Statement-Level Parallelism..."

http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/srch27@internationalizin g%20your%20app/0650/bks/SGI_Developer/books/T_IRIX_Prog/sgi_html/ch10.html

instruction-level parallelism это не программная, а железная модель распараллеливания (ну или набор приёмов/технологий/хаков используемых цпу-строителями) не доступная программно (на серийно выпускаемых наверное только за исключением итаника http://en.wikipedia.org/wiki/Itanium, да и то не уверен, используется ли она хоть кем-то или чем-то на итанике кроме компилера)

filin ★★
()
Ответ на: комментарий от filin

тама в сцылке, internationalizin g пишется слитно, пробел надо удалить

filin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.