Сравнение Lock-free алгоритмов — CAS и FAA на примере JDK 7 и 8

Автор: admin от 7-01-2017, 16:40, посмотрело: 336

Много ядер не бывает


Атомарные операции (atomics), например, Compare-and-Swap (CAS) или Fetch-and-Add (FAA) широко распространены в параллельном программировании.

Мульти- или многоядерные архитектуры установлены одинаково как в продуктах настольных и серверных компьютеров, так и в крупных центрах обработки данных и суперкомпьютерах. Примеры конструкций включают Intel Xeon Phi с 61 ядрами на чипе, который установлен в Tianhe-2, или AMD Bulldozer с 32 ядрами на узле, развернутых в Cray XE6. Кроме того, количество ядер на кристалле неуклонно растет и процессоры с сотнями ядер, по прогнозам, будут изготовлены в обозримом будущем. Общей чертой всех этих архитектур является растущая сложность подсистем памяти, характеризующаяся несколькими уровнями кэш-памяти с разными политиками включения, различными протоколами когерентности кэш-памяти, а также различными сетевыми топологиями на чипе, соединяющими ядра и кэш-память.
Практически все такие архитектуры обеспечивают атомарные операции, которые имеют многочисленные применения в параллельном коде. Многие из них (например, Test-and-Set) могут быть использованы для реализации блокировок и других механизмов синхронизации. Другие, например, Fetch-and-Add и Compare-and-Swap позволяют строить разные lock-free и wait-free алгоритмы и структуры данных, которые имеют более прочные гарантии прогресса, чем блокировки на основе кода. Несмотря на их важность и повсеместное употребление, выполнение атомарных операций полностью не проанализировано до сих пор. Например, по общему мнению, Compare-and-Swap идет медленнее, чем Fetch-and-Add. Тем не менее, это всего лишь показывает, что семантика Compare-and-Swap вводит понятие «wasted work», в результате – более низкая производительность некоторого кода.

Категория: Программирование

 

5 языков программирования со светлым (возможно) будущим

Автор: admin от 7-01-2017, 13:40, посмотрело: 527

5 языков программирования со светлым (возможно) будущим

Каждый раз начиная разговор о популярных языках программирования можно быть уверенным, что холивар неизбежен. Одним нравится С++, другим Python, третьим Rust. Как говорится, на вкус и цвет фломастеры разные. Тем не менее, попробуем и мы покопаться в апельсинах.

Категория: Программирование, Веб-разработка, Linux

 

FuseTools — уникальный инструмент прототипирования и разработки

Автор: admin от 7-01-2017, 11:10, посмотрело: 386

И снова доброго времени суток, хабражители. Меня зовут Владимир Миленко, и как вы возможно знаете, я фронтенд-разработчик в компании Иннософт. Возможно вы так-же заметите, что в свободное время я изучаю ситуацию на рынке разработки мобильных приложений. Несколько дней назад я написал статью, в которой описал, что такое NativeScript. Пришло время познакомить вас с другим уникальным инструментом, аналогов которому нет.
Речь пойдет о FuseTools — фреймворк для написания нативных мобильных приложений с потрясающими возможностями.
FuseTools — уникальный инструмент прототипирования и разработки

Категория: Веб-разработка, Android, iOS

 

Как начать использовать аппаратное шифрование SSD-диска на примере Samsung EVO 850 и программы sedutil

Автор: admin от 7-01-2017, 06:30, посмотрело: 578

Как начать использовать аппаратное шифрование SSD-диска на примере Samsung EVO 850 и программы sedutil

Это просто короткая подсказка, которую, я надеюсь, можно использовать и для других дисков со встроенным шифрованием (SED, self encrypting drives). Здесь нет глубокого разъяснения принципов и терминов.

Категория: Админитстрирование » Системное администрирование