Тут вон сверху сказали что душить надо эти зарубежные сервисы, а вы рассказываете как обходить барьеры чтобы ими пользоваться. Смотрите, на пятёрочку намотаете.
"Думает", правда, пока только по-английски. У меня "думает" по русски. Заказал ему исследования по инструкциям х86, вопрос в целом был задан по-русски. Тестовое задание, я месяц назад как раз искал инфу и делал небольшое сравнение по работе. В принципе копать начал в правильном направлении, повторяя мой путь.
Статья - супер! Спасибо! Хоть я из параллельной вселенной (HPC), но проблемы те же. Перф, перф и еще раз перф. Если поток висит на локе, значит что то ты недодумал. Правда у нас еще и многопроцессные системы, т.е. у каждого процесса, который общается по сетке еще и пачка пачка потоков. Но стоит сказать что редко кто использует native threads. Обычно MPI+OpenMP это индустриальный стандарт.
А насчет sleep() есть у меня контрпример. В одном приложении логика работы сетевого безобразия была примерно такая: 1. Пишем незадумываясь асинхронно сообщения в буфер; 2. Как только текущая работа закончена - начинаем активно ждать, протолкнув буфер в карту и долбая ее на тему выполненных реквестов. 3. Обрабатываем следущую пачку работы исходя их того что пришло 4. На барьере опустошаем буфер и ждем остальных.
Так вот. Когда процессов было мало 8 или 16 на сервер все ненапряжно летало. Но когда машины стали большими ядер так 64 на узелок, ждать из пункта 2 превратилось в ДАЙ-ДАЙ-ДАЙ. Миллионы запросов в секунду начали класть сетевой стек, который просто не успевал всем отвечать "ничего пока нету". В этом случае помог nanosleep() с временем, равным латентности сетки. К тому же, следует заметить, что пока это вот спит то соседний тред, который еще меланхолично что-то дожевывает, может немного ускорится ибо турба сейчас довольно чуткая и павер бюджет отдаст соседу. А обычный спинлок такого не дает. Ну если только через mwait()/monitor() но не все в это умеют.
А можно для несетивиков, но скажем так, сочуствующих пояснить один момент. Какая минимальная конфигурация сети с VLAN? Минимум два коммутатора? Так чтобы trunk между ними провесить? Trunk возможен только между коммутаторами же?
В чем была проблема работать на западную компанию в РФ до 22-го, и при этом вполне себе быть участником рынка труда в РФ, с зарплатами в рублях и налогами в мухосранске?
И что в результате?
Статья - продвижение уксусВилла. Поставить его в один ряд с теслой и эпплом, ага. Сравнивать надо сравнимое...
Тут вон сверху сказали что душить надо эти зарубежные сервисы, а вы рассказываете как обходить барьеры чтобы ими пользоваться. Смотрите, на пятёрочку намотаете.
Midnight Commander вам в руки и удаляйте...
Да понятно. Теперь донатить будут в правильную сторону и правильным людям.
Обещать не значит жениться
Зачем приводить этот странный тест с Delay Injection если можно просто померять BW и Latency одной и другой памяти и сравнить?!
То, что при высоком давлении и т.п. могут образовываться нестабильные соединения, тоже дааааавным-давно известно, взять хотя бы алмазы.
А почему алмаз - это нестабильное соединение?
"Думает", правда, пока только по-английски.
У меня "думает" по русски. Заказал ему исследования по инструкциям х86, вопрос в целом был задан по-русски. Тестовое задание, я месяц назад как раз искал инфу и делал небольшое сравнение по работе. В принципе копать начал в правильном направлении, повторяя мой путь.
Ждем следущую разоблачающую статью про gather/scatter, когда в массив ходят через другой a[i] = b[c[i]]+const например
Статья - супер! Спасибо!
Хоть я из параллельной вселенной (HPC), но проблемы те же. Перф, перф и еще раз перф. Если поток висит на локе, значит что то ты недодумал. Правда у нас еще и многопроцессные системы, т.е. у каждого процесса, который общается по сетке еще и пачка пачка потоков. Но стоит сказать что редко кто использует native threads. Обычно MPI+OpenMP это индустриальный стандарт.
А насчет sleep() есть у меня контрпример. В одном приложении логика работы сетевого безобразия была примерно такая:
1. Пишем незадумываясь асинхронно сообщения в буфер;
2. Как только текущая работа закончена - начинаем активно ждать, протолкнув буфер в карту и долбая ее на тему выполненных реквестов.
3. Обрабатываем следущую пачку работы исходя их того что пришло
4. На барьере опустошаем буфер и ждем остальных.
Так вот. Когда процессов было мало 8 или 16 на сервер все ненапряжно летало. Но когда машины стали большими ядер так 64 на узелок, ждать из пункта 2 превратилось в ДАЙ-ДАЙ-ДАЙ. Миллионы запросов в секунду начали класть сетевой стек, который просто не успевал всем отвечать "ничего пока нету". В этом случае помог nanosleep() с временем, равным латентности сетки.
К тому же, следует заметить, что пока это вот спит то соседний тред, который еще меланхолично что-то дожевывает, может немного ускорится ибо турба сейчас довольно чуткая и павер бюджет отдаст соседу. А обычный спинлок такого не дает. Ну если только через mwait()/monitor() но не все в это умеют.
Мда, теперь понято почему мне левые уведомления валятся на почту. ТП технично умыла руки.
А можно ссылочку на RRA? Не могу найти ничего похожго
Чет мне кажется что для обычного бытового датчика это перебор. А если нет, вопрос термокомпенсации не раскрыт.
А можно для несетивиков, но скажем так, сочуствующих пояснить один момент.
Какая минимальная конфигурация сети с VLAN? Минимум два коммутатора? Так чтобы trunk между ними провесить? Trunk возможен только между коммутаторами же?
Так почему наука до сих пор в тупике, и в тупике ли она?
А потом из сисек получается тройка. Понятно.
РФ может и не заметит, а вот в Мухосранске, куда релокант платил налоги, а потом нет - станет похуже.
В чем была проблема работать на западную компанию в РФ до 22-го, и при этом вполне себе быть участником рынка труда в РФ, с зарплатами в рублях и налогами в мухосранске?
Значит пространство дискретно?