Комментарии 20
>>И при компиляции все выравнивания переменных
When compiling for a ARMv6 or ARMv7-A/R processor, the ARM Compiler will assume that it can use unaligned accesses.
В любом случае. при компиляции переменные и так выравниваются для всех архитектур, если не указывать pack.
Спасибо.
Но работать будет менее эффективно же, если невровненные данные. Плюс ARMы разные бывают, но, очевидно, что в первую очередь будут пилить под мэйнстрим.
Внутри кэш строки доступ к невыровненным данным может быть бесплатен,
а вот при при пересечении кэш-строки пенальти и на последних Intel будет.
www.7-cpu.com/cpu/Skylake.html
64-bytes range cross penalty = 7 cycles
www.7-cpu.com/cpu/Ice_Lake.html
64-bytes range cross penalty = 6 cycles
4096-bytes range cross penalty = 7 cycles (1 additional cycle over 64-bytes cross penalty).
Ну, учитывая, что время от времени что-то подобное вроде как пытаются сделать, но ничего реально живого и распространённого так до сих пор и не появилось, то должен быть весьма немалый. Я, честно скажу, ещё не успел повникать в сабж, но мне одна только синхронизация общих ресурсов потоков по сети кажется адски узким местом
Любая достаточно сложная распределённая программа содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Erlang.
"Десятое правило Гринспена"
Слушайте, all — а какой юзкейс сего чуда?
От падения ноды это не защитит, размазать нагрузку — положим, но я не думаю что есть так уж много задач где Rythen/Xeon не осилит… Мы сегодня решаем это балансировкой входа-выхода и live migration виртуалок.
Правда интересно.
При попытке вот так оптимизировать приложение а адским потреблением памяти получится дикий траффик по сети вместо дикого трафика в своп. Неизвестно, что хуже.
Ну, условно, если трафик гоняется по некому 100 Gb Ethernet, то получается скорость передачи а пределе 12,5 гигабайт в секунду. Я не знаю ни одного SSD, который смог бы так же.
Хотя я не уверен в количестве доступных PCI-E линий у таких монстров, если честно. Сложно найти спецификации.
Для ядра Linux предложили систему прозрачного переноса потоков на разные ядра и хосты: Popcorn Linux