Как стать автором
Обновить
116
0
Алексей @AlexeyAB

Пользователь

Отправить сообщение

Памятка пользователям ssh

Время на прочтение13 мин
Количество просмотров1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Всего голосов 360: ↑352 и ↓8+344
Комментарии148

Анонсирована аппаратная поддержка транзакционной памяти в Haswell

Время на прочтение4 мин
Количество просмотров15K
Haswell будет очень инновационным Tock'ом. Еще в прошлом году стало доступно описание новых операций с целыми в AVX. А на этой неделе было опубликовано очередное расширение архитектуры X86. В Haswell появится аппаратная поддержка транзакционной памяти! На англоязычных сайтах обсуждение кипит. ISN Arstechnica LWN Engadget

Я думаю, что это самое нетривиальное расширение архитектуры X86 за много-много лет. Фича называется Transactional Synchronization Extensions (далее TSX), и состоит из двух частей — Hardware Lock Elision (HLE) и Restricted Transactional Memory (RTM). Обратите внимание на слово «Restricted». Все верно, есть некоторые ограничения по объему, гранулярности и уровню вложенности транзакций.

Об этих ограничениях и как это все будет работать подробнее под катом. (Никаких картинок, скучный технический текст)
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии14

Про InfiniBand: как мы уменьшали пинг с 7 мкс до 2,4 мкс (и результаты тестов)

Время на прочтение7 мин
Количество просмотров37K

InfiniBand-свитч SX6005. 12 FDR 56Gb/s портов на одном юните, коммутация 1.3Тб/с.

Многие считают, что InfiniBand — это «космос». То есть считается, что дорого и нужно только для «суперкомпьютеров» (HPC) производительностью в 1-2 Петафлопа и с гиганскими объмами обрабатываемых данных. Тем не менее, с помощью этой технологии можно организовывать не только самые скоростные межсистемные соединения в кластерах, но и радикально снижать задержки в работе критичных приложений. Конкретно – делать то, что может решаться и с помощью Ethernet, но экономичнее и быстрее. Вот пример.

Задача


У одного нашего крупного заказчика из финансовой сферы была проблема в скорости работы двух приложений. Специфика приложений заключалась в том, что необходимо было обрабатывать большое количество транзакций с минимальной задержкой. 6-7 мкс latency – это лучшие результаты, которые они достигли путем апгрейда серверов и максимальной софтверной доработкой. Дальнейшие возможные оптимизации сулили улучшения на уровне 0,3-0,5 мкс. Мы же пришли и сообщили, что сможем уменьшить задержки в два раза.
Читать дальше →
Всего голосов 47: ↑35 и ↓12+23
Комментарии49

Испытания boost::lockfree на скорость и задержку передачи сообщения

Время на прочтение11 мин
Количество просмотров23K
Не так давно в boost-1.53 появился целый новый раздел — lockfree реализующий неблокирующие очереди и стек.
Я последние несколько лет работал с так называемыми неблокируюшими алгоритмами (lock-free data structures), мы их сами писали, сами тестировали, сами использовали и втайне ими гордились. Естественно, у нас немедленно встал вопрос, переходить ли с самодельных библиотек на boost, и если переходить, то когда?
Вот тогда у меня и возникла в первый раз идея применить к boost::lockfree кое-какие из методик которыми мы испытывали собственный код. К счастью, сам алгоритм нам тестировать не придется и можно сосредоточиться на измерении производительности.
Я постараюсь сделать статью интересной для всех. Тем кто еще не сталкивался с подобными задачами будет полезно посмотреть на то что такие алгоритмы способны, а главное, где и как их стоит или не стоит использовать. Для тех кто имеет опыт разработки неблокирующих очередей возможно будет интересно сравнить данные количественных измерений. Я сам по крайней мере таких публикаций еще не видел.
Читать дальше →
Всего голосов 65: ↑64 и ↓1+63
Комментарии28

Eclipse + QT: установка и настройка

Время на прочтение3 мин
Количество просмотров54K
Достаточно давно стал присматриваться к кроссплатформенному С++ программированию. Не то, чтобы это было мне необходимо, но так для общего развития. И вот что я могу отметить: самая большая вещь, которая доставляет проблемы на этом пути — достаточно высокий порог вхождения в эту область именно по причине инструментария.

Если не рассматривать случай программирования в Emacs, что лично мне кажется пока неким толи анахронизмом, толи экстримом, постоянно сравнивая различные IDE с Visual Studio зачастую приходилось просто ужасаться. И главная проблема этих систем была в том, что за редким исключением они не работали из коробки без напильника.

Вторая проблема — юзабилити. Зачастую ниже среднего. Ранние версии KDevelop оставляли достаточно неоднозначное впечатление.

Третье, чего бы хотелось — интегрированного дизайнера интерфейсов. Его не было практически нигде, если не считать NetBeans (но только для Java), да MonoDevelop (GTK#). И хотя эти IDE весьма достойны, хотелось найти легкий способ программировать именно на C++ с минимальным количеством граблей.

В этой статье я хочу привести пошаговое руководство, что называется «для чайников», по установке на платформу Windows работоспособной конфигурации хорошей IDE Eclipse и хорошей библиотеки QT. Стартовую площадку, так сказать.

UPD: Что касается именно программирования в QT, то могу порекомендовать просто шикарную книжку на эту тему:
Jasmin Blanchette, Mark Summerfield: Разработка графического интерфейса с помощью QT3 (перевод Андрей Киселёв)

UDP2: Ещё литература:
Русский перевод документации из QAssistant
Qt4. Профессиональное программирование на C++
Jasmin Blanchette, Mark Summerfield: Qt 4. Программирование GUI на C++
Foundations of QT Development

Читать дальше →
Всего голосов 46: ↑42 и ↓4+38
Комментарии97

Новый виток архитектуры CUDA

Время на прочтение4 мин
Количество просмотров14K
Всем привет!
В начале апреля я увидел анонс новой видеокарты от nVidia, с новым мажорным индексом compute capability – 3.0. Внимательно изучив спеки был удивлён – по всему выходило, что теперь ветвления будут приводить к самым худшим последствиям: большим потерям производительности. Мне нравилось, что от версии к версии ветвления играют всё меньшую роль, а Kepler показался в этом плане шагом назад. Мозгом я понимал, что такое вряд ли возможно и решил немного выждать.
И вот на этой неделе мне пришёл whitepaper по новой числодробилке на архитектуре Kepler и многое прояснил.
А дальше - чистейший текст и ни одной картинки
Всего голосов 49: ↑45 и ↓4+41
Комментарии116

Новый алгоритм MIT в десятки раз ускоряет быстрое преобразование Фурье

Время на прочтение1 мин
Количество просмотров22K


На симпозиуме по дискретным алгоритмам ACM на этой неделе группа исследователей из MIT представила новый алгоритм быстрого преобразования Фурье sFFT (Sparse Fast Fourier Transform), который на некоторых задачах может быть в десятки или сотни раз быстрее классического БПФ.
Читать дальше →
Всего голосов 94: ↑65 и ↓29+36
Комментарии34

Вычисление N-го знака числа Пи без вычисления предыдущих

Время на прочтение4 мин
Количество просмотров134K
С недавних пор существует элегантная формула для вычисления числа Пи, которую в 1995 году впервые опубликовали Дэвид Бэйли, Питер Борвайн и Саймон Плафф:
image

Казалось бы: что в ней особенного — формул для вычисления Пи великое множество: от школьного метода Монте-Карло до труднопостижимого интеграла Пуассона и формулы Франсуа Виета из позднего Средневековья. Но именно на эту формулу стоит обратить особое внимание — она позволяет вычислить n-й знак числа пи без нахождения предыдущих. За информацией о том, как это работает, а также за готовым кодом на языке C, вычисляющим 1 000 000-й знак, прошу под хабракат.
Читать дальше →
Всего голосов 118: ↑111 и ↓7+104
Комментарии95

«Краник», или алгоритм для поиска цифр числа Пи

Время на прочтение5 мин
Количество просмотров37K
Привет, Хабр! Недавно столкнулся с задачей подсчёта числа Пи до знака, номер которого будет выбирать пользователь. Сразу полез на Википедию, почитать, что за зверь такой, это Пи, и как его находить с заданной точностью. Формул, описывающих число Пи, уйма. Но для решения моей задачи всё в этих формулах упирается либо в точность и длину базовых типов языка (я выбрал Java), либо (для решения предыдущей проблемы) в длинную арифметику, которую мне реализовывать не очень-то хотелось.
Читать далее
Всего голосов 31: ↑28 и ↓3+25
Комментарии23

Гибкое мускульное передвижение для двуногих существ

Время на прочтение1 мин
Количество просмотров43K
На конференции SIGGRAPH ASIA 2013 Thomas Geijtenbeek, Michiel van de Panne и Frank van der Stappen представили метод симуляции физики двуногих существ на основе мускульного контроля с оптимизацией перемещения мышц и других контролируемых параметров. В результате был получен метод управления передвижением для множества двуногих существ. Все приводящие в действие силы являются результатом работы симулированных 3D-мускул и модели нейронных задержек, включенных в цепи ответных реакций. Перечисленные контроллеры генерируют вращающие движения, которые учитывают биомеханические ограничения. Контроллеры находят различные походки на основе требуемой скорости, могут учитывать неровные поверхности и внешние возмущения, способны следовать в задаваемом направлении.
Всего голосов 169: ↑166 и ↓3+163
Комментарии56

Google признала, что головоломки на собеседованиях бесполезны

Время на прочтение1 мин
Количество просмотров224K
image

Google признала, что ее печально известные головоломки на собеседованиях («Сколько в мире настройщиков пианино?», «Почему крышки на канализационных люках круглые?») совершенно бесполезны для определения того, станет ли соискатель хорошим работником.

«Мы выяснили, что головоломки — пустая трата времени. Они не могут ничего предсказать, и в процесс собеседования включены только для того, чтобы дать возможность интервьюеру почувствовать себя умнее», сказал вице-президент компании по работе с персоналом Ласло Бок в интервью New York Times.
Читать дальше →
Всего голосов 171: ↑161 и ↓10+151
Комментарии339

Кольца, уровни привилегий и защита в x86

Время на прочтение9 мин
Количество просмотров49K
image

Вы наверняка интуитивно догадывались, что приложения, выполняемые на Intel x86 компьютерах, ограничены в своих возможностях, и что некоторые действия могут быть выполнены исключительно операционной системой. Но знаете ли вы, как это действительно работает? В данном посте рассмотрим уровни привилегий x86 — механизм, в котором ОС и процессор действуют сообща для того, чтобы ограничить то, что могут сделать user mode приложения.

Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии5

Disruptor — новая парадигма многопоточного программирования

Время на прочтение4 мин
Количество просмотров34K
На прошлой неделе компания LMAX, где я работаю, получила приз Java Duke's Choice Award 2011 за фреймворк Disruptor. Ранее об этой технологии писал Martin Fowler, известный многим читателям публикациями об объектном программировании.

В этой статье я хотела бы вкратце рассказать об этой технологии, а так же о конкретной проблеме, которую эта технология решает в компании LMAX.

Читать дальше →
Всего голосов 33: ↑26 и ↓7+19
Комментарии25

Intel® Parallel Studio XE 2013 Service Pack 1 – что нового?

Время на прочтение9 мин
Количество просмотров11K


Пакет Intel Parallel Studio XE давно известен разработчикам, в том числе и по публикациям в блоге Intel на Хабре. Недавно вышло обновление - Intel Parallel Studio XE 2013 Service Pack 1 (SP1), имеющее ряд интересных новшеств. Становится проще программировать для со-процессоров и встроенной графики, во многом благодаря поддержке стандарта OpenMP 4.0 (частичной). Поиск ошибок стал гибче, утечки памяти теперь обнаруживаются до завершения процесса, т.е. их можно искать в долгоиграющих сервисах и «падающих» приложениях. Найти узкие места в производительности будет легче благодаря новому представлению дерева вызовов, оценке накладных расходов и детальной информации о параллельных конструкциях.
И ещё много интересного
Всего голосов 23: ↑20 и ↓3+17
Комментарии10

Об истории реализаций memcpy и их производительности

Время на прочтение3 мин
Количество просмотров23K
void * memcpy ( void * destination, const void * source, size_t num );
Казалось бы, что там сложного? А о реализациях этой функции можно написать целую историю.

Когда я смотрю на окно своего любимого рабочего инструмента — профилировщика Vtune XE, очень часто вижу, что он в очередной раз обнаружил, что значительное время потратилось на копирование памяти. Так и обычно и написано: clock ticks spent in libgcc/[g]libc/kernel memcpy — XX%.

Наверное, поэтому memcpy часто переписывался, например в lkml частенько появляются подобные треды. (Больше реализаций, скорее всего, есть только у сортировок). Казалось бы, в отличие от сортировки, где есть много вариантов и алгоритмов с копированием памяти все просто. На самом деле, даже если говорить о корректности, а не производительности, возможны варианты. (В подтверждение тому — обсуждение эпического бага с участием Линуса Торвальдса и Ульриха Дреппера).

Еще во времена 8086, то есть тридцать четыре года назад, внутри реализации memcpy был следующий код:
mov [E]SI, src
mov [E]DI, ptr_dst
mov [E]CX, len
rep movsb
(все проверки и т.д. здесь и далее опущены для простоты)

Что же изменилось с тех пор? Под катом ассемблерный код и ни одной картинки.
Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии36

3D-печать органов человека

Время на прочтение11 мин
Количество просмотров94K
UPD: Владельцы лаборатории — Инвитро — теперь есть на Хабре. Занёс в их корпоративный блог. С вопросами можно обращаться к ним напрямую.


Это из новой лаборатории 3D-печати органов. Спереди внушительный микроскоп, дальше видно двух медицинских инженеров за AutoCAD – делают макет площадки для формирования тканевых сфероидов.

Тут недавно открылась лаборатория 3D-биопринтинга органов (проект Инвитро). Вокруг неё творится какая-то лютая феерия непонимания того, что именно делается. В общем, хоть я и не микробиолог, но мне стало интересно. Я пробился до разработчика — В.А. Миронова. Именно он изобрёл технологию печати органов и запатентовал это в США, участвовал в разработке уже трех модификаций биопринтеров, и именно он «главный по науке» в новой лаборатории в Москве:


В.А. Миронов (M.D., Ph.D., профессор с 20-летним опытом в микробиологии, в частности, на границе с IT) — в процессе полуторачасового объяснения мне сути технологии изрисовал кучу бумаги.

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

А пока главное. Не торопитесь пить всё что горит: до новой печени ещё очень далеко. Поехали.
Читать дальше →
Всего голосов 165: ↑158 и ↓7+151
Комментарии141

Быстрый Attach to Process

Время на прочтение2 мин
Количество просмотров13K
В Visual Studio есть удобная возможность присоединяться к запущенному процессу (Tools — Attach to Process...) во время отладки. Удобная до тех пор, пока не приходится делать это с завидной регулярностью, тогда выбор нужного процесса из открывшегося списка становится крайне утомительным. Именно поэтому возникает желание автоматизировать эти нехитрые действия.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии24

Демонстрация сбоев программы при отсутствии барьеров памяти

Время на прочтение3 мин
Количество просмотров32K
Джефф Прешинг (Jeff Preshing) опубликовал отличную демонстрацию, как нормальный код C++ возвращает непредсказуемый результат на многоядерных процессорах со слабо упорядоченной обработкой очереди запросов (Weakly-Ordered CPU), то есть на ARM-процессорах. Например, на iPhone или каком-нибудь современном Android-устройстве.

Простая программа C++ с двумя потоками 20.000.000 раз прибавляет единичку к значению, защищённому мьютексом, — и каждый раз на выходе получается разный результат, который меньше 20.000.000!



Как говорится, наш враг — CPU.
Читать дальше →
Всего голосов 81: ↑74 и ↓7+67
Комментарии39

Приведение типов

Время на прочтение4 мин
Количество просмотров206K
Будучи на конференции Qt Developer Days 2010 я узнал, что одним из самых популярных вопросов на собеседовании в разные зарубежные компании, работающие с Qt библиотекой, является вопрос о различиях в способах приведения типов в C++. Поэтому здесь я рассмотрю основные различия между static_cast, dynamic_cast, const_cast, reinterpret_cast, C-style cast, qobject_cast и qvariant_cast

Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии59

Два гиганта в одной программе — Nvidia CUDA и MPI

Время на прочтение4 мин
Количество просмотров15K
Здравствуйте хабровчане, в этой статье я хочу рассказать о взаимодействии двух технологий MPI(mpich2) и NVIDIA CUDA. Упор я хочу сделать именно на саму структуру программы и настройку вышеописанных технологий для работы в одной программе. И так поехали…

Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии21

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность