Миф: как IBM победил БЭСМ

User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: Миф: как IBM победил БЭСМ

Post by tengiz »

StrangerR wrote:
Переключение между "процессами" и "потоками" (или "нитями" или "легкими процессами") стоит примерно одинаково.
Это не так точнее совсем не так

Переключение процесса
- полностью поменять меппинг памяти (ну да, в новом часть может совпадать если там шеред сторейдж)
- поменять контекст прав доступа
- поменять контекст внешних объектов (fd и прочего)
- взять регистры и прочее для процесса включая положение стека
- запуститься

Переключение треда
- взять регистры для процесса, выставить новое положение стека
- запуститься

Намного меньше так как не меняется меппинг памяти, права и внешние объекты.
Я полагаю, Ваши сведения устарели для популярных цпу и ОС. На современных процессорах "mapping памяти" переключается тривиально (загрузка нескольких регистров, самое дорогое при этом - некоторые внутренние процессорные кеши обнуляются, но на "совсем современных" процессорах даже это уже незаметно), права доступа у тредов даже в одном процессе бывают разные, кроме того, эти самые права и контексты внешних объектов в современных популярных ОС - это всего лишь данные в памяти - при переключении маппинга памяти автоматически все переключается.

В итоге, заметить разницу между переключением процесса и переключением потока очень сложно. А в некоторых операционных системах, например Windows, планировщик вообще не делает (и никогда не делал разницы - для всех версий NT, аж с 1991 года) разницы между процессами или потоками так как "видит" только "потоки", более того, "процесс" в обязательном порядке имеет хотя бы один "поток", иначе он просто не будет выполняться.

Ничего существенно дополнительного (что реально было бы заметно с точки зрения времени выполнения) в зависимости от переключения "потоков" одного "процесса" или разных делать не нужно. В результате за исключением редчайшей экзотики беспокоиться о разнице переключения "потоков" одного "процесса" или разных "процессов" не нужно вообще.

А вот где начинается существенная разница - это при использовании "user mode threads" или как оно там называется для разных ОС.
Cheers
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: Миф: как IBM победил БЭСМ

Post by tengiz »

StrangerR wrote:
tengiz wrote:Это уже давно не совсем так у Оракла.
Это до сих пор почти так. А начиналось с _только так_.
Конечно, когда в те времена, когда Оракл работала на всем, кроме кирогаза (десятки прогаммно-аппаратных платформ) было не до изысков. А вот когда его портировали на Wintel, удобство многопотоковой архитектуры тут же оказалось к месту. Поэтому как минимум на Wintel Оракл - многопотоковый, хотя и большие куски изначальной архитектуры с несколькими процессами разного назначения до сих пор имеются, хотя за что у них там в самых последних версиях я уже не в курсе.
Cheers
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Миф: как IBM победил БЭСМ

Post by iDesperado »

tengiz wrote:Конечно, когда в те времена, когда Оракл работала на всем, кроме кирогаза (десятки прогаммно-аппаратных платформ) было не до изысков. А вот когда его портировали на Wintel, удобство многопотоковой архитектуры тут же оказалось к месту. Поэтому как минимум на Wintel Оракл - многопотоковый, хотя и большие куски изначальной архитектуры с несколькими процессами разного назначения до сих пор имеются, хотя за что у них там в самых последних версиях я уже не в курсе.
ерунду рассказываете. когда портировали на винду выяснилось, что у винды переключение процессов работает чудовищно медленно, пришлось переделывать на тхреды, что бы хоть как-то конкурировать с другими. под линуксом и соляркой на интеле оставили процессы. только сейчас, в дань моде, в версии 12с сделали параметер threaded_execution, который переключает на тхреды на unix/linux платформах, но кроме неудобства никто разницы не видит.
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: Миф: как IBM победил БЭСМ

Post by tengiz »

iDesperado wrote:ерунду рассказываете. когда портировали на винду выяснилось, что у винды переключение процессов работает чудовищно медленно, пришлось переделывать на тхреды, что бы хоть как-то конкурировать с другими. под линуксом и соляркой на интеле оставили процессы. только сейчас, в дань моде, в версии 12с сделали параметер threaded_execution, который переключает на тхреды на unix/linux платформах, но кроме неудобства никто разницы не видит.
Вы что-то путаете. Нет никакой заметной разницы при переключении потоков или процессов на Wintel и никогда не было.
Cheers
User avatar
Vladimir1440
Уже с Приветом
Posts: 2085
Joined: 14 Sep 2013 13:07

Re: Миф: как IBM победил БЭСМ

Post by Vladimir1440 »

tengiz wrote:
iDesperado wrote:ерунду рассказываете. когда портировали на винду выяснилось, что у винды переключение процессов работает чудовищно медленно, пришлось переделывать на тхреды, что бы хоть как-то конкурировать с другими. под линуксом и соляркой на интеле оставили процессы. только сейчас, в дань моде, в версии 12с сделали параметер threaded_execution, который переключает на тхреды на unix/linux платформах, но кроме неудобства никто разницы не видит.
Вы что-то путаете. Нет никакой заметной разницы при переключении потоков или процессов на Wintel и никогда не было.
Во всяком случае какая-то зависимость от ОС - точно есть. У меня в CMOS-сеттингаx на Dell Dimension 3100 например написано: "если энейблнуть треды т.е. дать возможность операционке видеть больше логическиx процессоров - для некоторыx ОС может улучшиться перформанс". Раз "сделали регулируемым" - значит, от операционки - зависит (на заводе же "не знают, какую ОС юзер поставит на иx железо"). Логично? Скриншот сделать не могу: в BIOS же Принт-скрин, ессно, не работает.

На воркстейшнаx - одно могу сказать точно: если это энейблнуто - энергопотребление заметно растёт (просто если воркстейшн - лаптоп, то батарея - заметно раньше садится). Но для воркстейшна же как правило баттленеки - это диск и нетворк (если воркстейшн "домашняя" - то баттленек это вообще Интернет-провайдер), так что сильно (кроме энергопотребвления) - не заметно. На сервераx - по всякому (бывает, заказчик требует чтобы "все треды - были энейблнуты" - нo он же лучше меня гораздо знает потребности софта котором он грузит свой сервер).
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Миф: как IBM победил БЭСМ

Post by iDesperado »

tengiz wrote:Вы что-то путаете. Нет никакой заметной разницы при переключении потоков или процессов на Wintel и никогда не было.
тхреды было вынужденное решение, без крайней нужды никто бы не стал ограничивать все пользовательские процессы оракла четырьмя гб, когда на соседних осях на том же интеле каждый пользовательский процесс оракла умел адресовать 4 гб. до эпохи 64-бит адресация тхредов была главным тормозом всех баз на винде. и майкрософтских и от ibm.
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: Миф: как IBM победил БЭСМ

Post by tengiz »

iDesperado wrote:только сейчас, в дань моде, в версии 12с сделали параметер threaded_execution, который переключает на тхреды на unix/linux платформах, но кроме неудобства никто разницы не видит.
Думаю, Вы опять что-то путаете. Без переключения на потоки невозможно эффективно/удобно использовать epoll vs select/poll или как оно там в posix называется.
Cheers
User avatar
Vladimir1440
Уже с Приветом
Posts: 2085
Joined: 14 Sep 2013 13:07

Re: Миф: как IBM победил БЭСМ

Post by Vladimir1440 »

Что таким могучим БД нужно (в которыx куча тред по 4 ГБ памяти каждая :o ) - честно говоря не знаю: не мой масштаб.

Но при цифровой обработке видео например (нерезке нужныx "кусочков" из видеопотока - спутниковые "карты погоды" в зависимости от ZIP-кода смотрящего например, точнее его IP-адреса) - точно что "чем больше тредов - тем лучше"). Каждый тред режет себе видео для своего посетителя сайта, никто не ждёт короче. Всякие такие серверa - зачем им, подумайте, тредов больше чем коре. Иx же просто дизейблнули бы, если б они были вредны, тогда:
...Up to a total of 40 processor cores with 80 threads (Intel® Hyper-Threading Technology) guarantee highest rendering performance (48 cores/96 threads with optional 12-Core CPUs)...
http://xi-machines.com/en/systems-render.php
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: Миф: как IBM победил БЭСМ

Post by tengiz »

iDesperado wrote:
tengiz wrote:Вы что-то путаете. Нет никакой заметной разницы при переключении потоков или процессов на Wintel и никогда не было.
тхреды было вынужденное решение, без крайней нужды никто бы не стал ограничивать все пользовательские процессы оракла четырьмя гб, когда на соседних осях на том же интеле каждый пользовательский процесс оракла умел адресовать 4 гб. до эпохи 64-бит адресация тхредов была главным тормозом всех баз на винде. и майкрософтских и от ibm.
Причина была не в том, что процессы переключались якобы медленнее. А, например, упомянутый уже epoll или IO Completion Port в Wintel.
Cheers
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Миф: как IBM победил БЭСМ

Post by iDesperado »

tengiz wrote:Думаю, Вы опять что-то путаете. Без переключения на потоки невозможно эффективно/удобно использовать epoll vs select/poll или как оно там в posix называется.
да кого это интересует на фоне 4гб на процесс ?

Vladimir1440
научитесь уже отличать тхреды ОС от гипертрединга процессора.
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: Миф: как IBM победил БЭСМ

Post by tengiz »

Vladimir1440 wrote:Во всяком случае какая-то зависимость от ОС - точно есть. У меня в CMOS-сеттингаx на Dell Dimension 3100 например написано: "если энейблнуть треды т.е. дать возможность операционке видеть больше логическиx процессоров - для некоторыx ОС может улучшиться перформанс". Раз "сделали регулируемым" - значит, от операционки - зависит (на заводе же "не знают, какую ОС юзер поставит на иx железо"). Логично? Скриншот сделать не могу: в BIOS же Принт-скрин, ессно, не работает...
Вы говорите о другом. Hyperthreading и os threads - совершенно разные вещи. Какой-то умник в Интел не подумал и создал ненужную путаницу с терминами. Зависит не столько от операционки, сколько от характерной нагрузки. В одних случаях есть явный выигрыш, в других - наоборот.
Cheers
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: Миф: как IBM победил БЭСМ

Post by tengiz »

iDesperado wrote:
tengiz wrote:Думаю, Вы опять что-то путаете. Без переключения на потоки невозможно эффективно/удобно использовать epoll vs select/poll или как оно там в posix называется.
да кого это интересует на фоне 4гб на процесс ?
Вы думаете кого-то интересует переходный период когда 32 бит стали начинать выдыхаться, а 64 бит были еще дороговаты/сыроваты? Это положение продлилось совсем недолго, с появлением amd64 все резко изменилось, для тех, кому нужны были 4гб+ проблемы уже не было. Возвращаясь к скорости переключения - никакой практической разницы нет. Почему орал выбрал потоки, могу только предполагать. А также для интереса могу спросить коллег, которые делали оракл. А я делал "майкрософтовскую базу", поэтому в чем было дело знаю сам.
Cheers
User avatar
Vladimir1440
Уже с Приветом
Posts: 2085
Joined: 14 Sep 2013 13:07

Re: Миф: как IBM победил БЭСМ

Post by Vladimir1440 »

tengiz wrote:Вы говорите о другом.
Угу. :cry:
tengiz wrote:Hyperthreading и os threads - совершенно разные вещи. Какой-то умник в Интел не подумал и создал ненужную путаницу с терминами. Зависит не столько от операционки, сколько от характерной нагрузки. В одних случаях есть явный выигрыш, в других - наоборот.
Ну вот. Не зря сегодня сюда зашёл. А путаница - действительно сильна: в свете этой ветки ("тут, на привете") вот такoе читаeтся теперь совершенно иначе (раньше - всё в подобныx текстаx было просто и понятно, блин):
...On a multiprocessor or multi-core system, threads can be truly concurrent, with every processor or core executing a separate thread simultaneously. The operating system uses hardware threads to implement multi processing...
Т.е. ОС может оказывается и использовать "хардваре тредс" процессорa, и иметь свои "софтваре тредс" (которые же тоже - "ОС тредс", блин).
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Миф: как IBM победил БЭСМ

Post by iDesperado »

tengiz wrote:Вы думаете кого-то интересует переходный период когда 32 бит стали начинать выдыхаться, а 64 бит были еще дороговаты/сыроваты?
издеваетесь ? вы совсем не представляете когда был windows NT и когда переход на x64 ? решение по ораклу на тхредах и x64 почти десятилетие разделяет.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Миф: как IBM победил БЭСМ

Post by Сабина »

iDesperado wrote:
tengiz wrote:Вы думаете кого-то интересует переходный период когда 32 бит стали начинать выдыхаться, а 64 бит были еще дороговаты/сыроваты?
издеваетесь ? вы совсем не представляете когда был windows NT и когда переход на x64 ? решение по ораклу на тхредах и x64 почти десятилетие разделяет.
Попробую продемонстрировать знание истории :). На MCSE по NT сдавала в 2000, на 64 бит помню переходили где то в 2009 на работе
https://www.youtube.com/watch?v=wOwblaKmyVw

Return to “Вопросы и новости IT”