пятница, 21 февраля 2014 г.

Московская группа пользователей C++ - часть 5

Дмитpий Hecтepук - Высокопроизводительные вычисления на С/С++

Многие из нас знают про питерский JetBrains, и если хоть раз сталкивалось с программированием для Android или .NET скорее всего любит. Любит за IntelliJ IDEA/Android Studio, ReSharper и многие другие средства разработки. И если на собрание Си++ разработчиков приходит "технический евангелист" из такой уважаемой фирмы, то он сразу получает большой кредит доверия

Кроме всего прочего Дмитрий Нестерук является MVP (Most-valuable Professional) по Visual C# с 2009 года. Он разработчик курсов на PluralSight по Matlab и CUDA, любит заниматься финансовой математикой (чтобы это ни значило), закончил британский университет в Саутгемптоне, и живет в Швеции. Всё говорило за то, что его длинная, полуторачасовая презентация должна быть очень интересна и полезна аудитории ("она же про HPC/высокопроизводительные вычисления!"), но...

Начал Дмитрий с рассказа про управляемый (managed) и нативный код. И перешел сразу же к управляемому коду. Что, конечно, слегка напрягало, т.к. аудитории это было в-общем то чуждо.

Не знаю почему, может в силу больших ожиданий от "евангелиста", мне периодически казалось что Дмитрию непривычно и некомфортно выступать на русском. Например, иногда смешили переводы на русский некоторых терминов, так он применял "портативный" вместо "переносимый" для "portable". Кажется, просто не хватило адекватного review данной презентации.

Как и в каждой презентации про HPC было рассказано про disk-bound vs cpu-bound, параллелизм, SIMD/SSE* (и не сказано про AVX).

JetBrains пытается ускорить все стадии циклов разработки, начиная от редактирования и заканчивая параллельной сборкой. На этом месте Дмитрий показал Incredibuild как средство параллелизации построения большого проекта (привет DISTCC)

Далее он перешел к рассказу про высокоуровневые технологии параллелизации/векторизации вычислений: CUDA (сказал много) vs OpenCL (сказал почти ничего). Когда надо больше параллелизма (но нет еще достаточно мотивации и денег на реальный кластер) то технологии FPGA и Xeon Phi могут помочь как ускорители вычислений работающих на desktop компьютерах.

В этом месте некоторая часть аудитории достигла точки кипения и все-же спросила: "Когда же про Си++ то начнем?". Резонный вопрос.

Интеловские технологии Xeon Phi aka MIC, большим фанатом которых с недавних пор Дмитрий является, стали пожалуй спасителями презентации и впервые он говорил собственно о Си++ (Intel C++ compiler) и как его применять для компиляции MIC кода.

Ну и чтобы Си++ разработчики не чувствовали себя совсем обманутыми нам под конец еще раз показали текущее состояние дел их (JetBrains) кросс-платформенной среды разработки Си++ со всеми, свойственными JetBrains пирогами и плюшками (удобные средства рефакторина и кодогенерации). Но вы скорее всего это уже видели на Хабре месяц назад. И должен признаться, что визуально это пока не очень впечатляет, выглядит не сильно лучше чем KDE редактор Kate, к которому приделали меню рефакторинга. В-прочем, на таком раннем этапе развития продукта никто большего и не ожидал.

В-целом, выступление Дмитрия оставило двойственное впечатление: с одно стороны рассказ про технологии, скорее всего был многим полезен, но все-же его надо читать в другое место и другое время, это был очень сильный оффтопик для группы пользователей Си++. Персонально я не узнал ничего нового, и лучше бы еще какой материал про Си++11/14 послушал. Слишком много интересного происходит последние пару лет собственно в языке Си++, чтобы тратить время на такие общеобразовательные лекции. Извините.

Читайте заключение в следующей статье...

Комментариев нет :

Отправить комментарий