Всем привет! Продолжаем увлекательное путешествие «5 недель с компанией Intel» — тема второй дискуссии — инструменты разработки Intel, разработка и оптимизация параллельных приложений, в частности — Intel Parallel Studio.
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/d3d/ca5/506/d3dca55064ae05b082bb83786bfb9325.jpg)
Сегодня у нас в гостях Владимир Цымбал — работая в компании с 2005 года, он занимается поддержкой пользователей инструментов разработки параллельных приложений Intel.
Прежде всего хочется поздравить хабрапользователя SSE — на первой неделе дискуссий его вопрос больше всех понравился представителям компании Intel. За свое любопытство он получит приз — комплект «Мышка и клавиатура». Приз можно будет получить после пятой недели дискуссий, на личной встрече в компании. Кстати, интересное совпадение! ;)
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/d38/30b/bae/d3830bbae24ecdb11bff4a47788a5f38.jpg)
Участвуйте в дискуссии — глядишь, и Вам повезет! Клавиатуры и нетбуки у нас еще есть ;)
Ну а теперь интервью:
Владимир закончил Таганрогский государственный радиотехнический университет в 1996-м году по специальности «радиотехника»; там же защитил кандидатскую диссертацию. Преподавал в университете, работал научным сотрудником в КБ, разрабатывал аппаратные графические ускорители и участвовал в разработке программно-аппаратных комплексов для медицинской диагностики как старший инженер-программист.
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/a97/78e/e41/a9778ee4122f4153106ed1cf5c0926fd.jpg)
В Intel с 2005 года, участвовал в разработке VTune Performance Analyzer, а сейчас работает в Intel Performance Analysis and Threading Lab, где занимается поддержкой пользователей инструментов разработки параллельны приложений Intel и, в частности, Parallel Studio.
Честно говоря, я с самого начала хотел оказаться в Intel. Года два отслеживал предложения о вакансиях и, когда подходящая мне вакансия открылась, пришел на собеседование.
Приложения самые разные — скажем, клиентские приложения из различных областей, например, финансовой. Или взять здравоохранение — это приложения, работающие с медицинским оборудованием, а это и обработка сигналов, и алгоритмы подсчета различных характеристик исследуемых сигналов, и визуализация данных. Таким приложениям всегда нехватает производительности компьютеров. Могут быть и серверные приложения —программы, обрабатывающие запросы клиентских машин и работающие по умолчанию в многопоточном и многопроцессорном режиме. Для них максимальное использование всех имеющихся в системе микропроцессоров и ядер является критичным. Их разработчики стараются на все 100% использовать имеющиеся вычислительные ресурсы — для этих людей это вопрос конкурентного преимущества на рынке, так что они ищут инструменты для того, чтобы улучшить свои серверные приложения в плане многопоточности и многопроцессорности.
Сложные случаи — их, на самом деле, не так много, но они происходят довольно часто. Как правило, это те случаи, когда race condition, то есть конкурентный доступ к одним и тем же данным, просто не заметен программисту. Он не видит эффект от ошибки. Она возникает, но программист об этом узнает слишком поздно — в худшем случае, когда приложение уже у заказчика. Коварность этих ошибок состоит в том, что они зависимы от среды, в которой работает программа. Например, приложение установили на более быструю машину, и результаты работы программы изменились, хотя на тестовой машине таких эффектов не было обнаружено. Поэтому разработчики заинтересованы в таких инструментах, которые бы обнаруживали такого рода ошибки вне зависимости от среды работы приложений. Эти ошибки случаются всегда, постоянно, от них никто не застрахован, поэтому такие инструменты, как Intel Parallel Studio, очень популярны и являются необходимой частью набора любого программиста, занимающегося параллельным программированием.
Мы не говорим о преимуществе над инструментами Microsoft, мы дополняем возможности Visual Studio обнаруживать ошибки работы с памятью и ошибки многопоточности, делая ее полноценным отладчиком параллельных программ — это первое; второе — мы помогаем сразу создавать параллельные приложения более эффективными. В каком смысле? Дело в том, что недостаточно просто использовать потоки при разработке приложений. Нужно знать, насколько эффективно эти потоки используют микропроцессорные ядра. Microsoft Visual Studio не содержит инструментов, позволяющих отслеживать временные характеристики исполнения программы, чтобы оценить насколько приложение активно использует все микропроцессоры, находящиеся в системе, и в какой именно функции программы многопроточность реализована неэффективно. Мы дополняем Visual Studio таким функционалом профилировки многопоточных приложений.
Это первая область моих научных интересов, еще со времени работы над моей диссертацией вместе с научным руководителем. Если коротко, то я занимался разработкой признаков для распознавания многомерных сигналов, специализируясь в медицинской области. Мы пытались понять, каким образом можно выделить некоторые специфические признаки из сигналов энцефалографии, по которым можно было бы распознавать различные патологии. Эта тема продолжает меня интересовать, сейчас я довольно часто сталкиваюсь с компаниями, которые занимаются обработкой сигналов и изображений, и имеют свои собственные разработки в области распознавания образов. Я продолжаю сотрудничать со своим научным руководителем в этой области. Это не имеет никакого отношения к моей непосредственной работе, но эта тема находится в области моих интересов.
Да — вне работы я занимаюсь научной деятельностью.
Intel к любой научной деятельности относится очень хорошо, поощряет научные публикации и участие в конференциях.
Знаете, когда занимаешься научной деятельностью, важно понять, чем конкретно ты занимаешься — фундаментальными научными разработками, или прикладными. Я занимаюсь разработкой базовых методик и алгоритмов, а их применение — область, в которой работают конкретные компании, занимающиеся разработкой диагностического оборудования. Их можно воплотить в программном виде и применять в различных областях.
Верно.
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/7e8/a7b/01d/7e8a7b01d4b1c11568a49136f683c391.jpg)
Да, я сертифицированный дайвер, и регулярно погружаюсь как в России, так и за рубежом.
Дело тут не во всесторонности — дайвингом я занимаюсь, чтобы голова не вскипела от всех научных и рабочих моментов (смеется). Иногда нужно чем-то заняться, чтобы отвлечься от работы — экстремальный отдых как раз очень хорошо от нее отвлекает.
Не стесняйтесь участвовать в обсуждении, задавайте вопросы!
![image](https://habrastorage.org/getpro/habr/post_images/d3d/ca5/506/d3dca55064ae05b082bb83786bfb9325.jpg)
Сегодня у нас в гостях Владимир Цымбал — работая в компании с 2005 года, он занимается поддержкой пользователей инструментов разработки параллельных приложений Intel.
Прежде всего хочется поздравить хабрапользователя SSE — на первой неделе дискуссий его вопрос больше всех понравился представителям компании Intel. За свое любопытство он получит приз — комплект «Мышка и клавиатура». Приз можно будет получить после пятой недели дискуссий, на личной встрече в компании. Кстати, интересное совпадение! ;)
![image](https://habrastorage.org/getpro/habr/post_images/d38/30b/bae/d3830bbae24ecdb11bff4a47788a5f38.jpg)
Участвуйте в дискуссии — глядишь, и Вам повезет! Клавиатуры и нетбуки у нас еще есть ;)
Ну а теперь интервью:
Владимир закончил Таганрогский государственный радиотехнический университет в 1996-м году по специальности «радиотехника»; там же защитил кандидатскую диссертацию. Преподавал в университете, работал научным сотрудником в КБ, разрабатывал аппаратные графические ускорители и участвовал в разработке программно-аппаратных комплексов для медицинской диагностики как старший инженер-программист.
![image](https://habrastorage.org/getpro/habr/post_images/a97/78e/e41/a9778ee4122f4153106ed1cf5c0926fd.jpg)
В Intel с 2005 года, участвовал в разработке VTune Performance Analyzer, а сейчас работает в Intel Performance Analysis and Threading Lab, где занимается поддержкой пользователей инструментов разработки параллельны приложений Intel и, в частности, Parallel Studio.
Как вы попали в Intel?
Честно говоря, я с самого начала хотел оказаться в Intel. Года два отслеживал предложения о вакансиях и, когда подходящая мне вакансия открылась, пришел на собеседование.
К вам обращаются люди, разрабатывающие параллельные приложения. Какого рода эти приложения?
Приложения самые разные — скажем, клиентские приложения из различных областей, например, финансовой. Или взять здравоохранение — это приложения, работающие с медицинским оборудованием, а это и обработка сигналов, и алгоритмы подсчета различных характеристик исследуемых сигналов, и визуализация данных. Таким приложениям всегда нехватает производительности компьютеров. Могут быть и серверные приложения —программы, обрабатывающие запросы клиентских машин и работающие по умолчанию в многопоточном и многопроцессорном режиме. Для них максимальное использование всех имеющихся в системе микропроцессоров и ядер является критичным. Их разработчики стараются на все 100% использовать имеющиеся вычислительные ресурсы — для этих людей это вопрос конкурентного преимущества на рынке, так что они ищут инструменты для того, чтобы улучшить свои серверные приложения в плане многопоточности и многопроцессорности.
Если взять такую поддающуюся распараллеливанию задачу, как архитектурная визуализация, то дискретными задачами становятся процессы визуализации отдельных кадров. Эти процессы друг с другом никак не связаны, не конкурируют — их можно считать в любом порядке. А есть другие приложения, где возникает race condition — это когда одна часть вычислений использует другую, и требует данных от другого процесса. Какие сложные случаи такого параллелизма бывают?
Сложные случаи — их, на самом деле, не так много, но они происходят довольно часто. Как правило, это те случаи, когда race condition, то есть конкурентный доступ к одним и тем же данным, просто не заметен программисту. Он не видит эффект от ошибки. Она возникает, но программист об этом узнает слишком поздно — в худшем случае, когда приложение уже у заказчика. Коварность этих ошибок состоит в том, что они зависимы от среды, в которой работает программа. Например, приложение установили на более быструю машину, и результаты работы программы изменились, хотя на тестовой машине таких эффектов не было обнаружено. Поэтому разработчики заинтересованы в таких инструментах, которые бы обнаруживали такого рода ошибки вне зависимости от среды работы приложений. Эти ошибки случаются всегда, постоянно, от них никто не застрахован, поэтому такие инструменты, как Intel Parallel Studio, очень популярны и являются необходимой частью набора любого программиста, занимающегося параллельным программированием.
Скажите, а в чем преимущество Parallel Studio над инструментарием Microsoft?
Мы не говорим о преимуществе над инструментами Microsoft, мы дополняем возможности Visual Studio обнаруживать ошибки работы с памятью и ошибки многопоточности, делая ее полноценным отладчиком параллельных программ — это первое; второе — мы помогаем сразу создавать параллельные приложения более эффективными. В каком смысле? Дело в том, что недостаточно просто использовать потоки при разработке приложений. Нужно знать, насколько эффективно эти потоки используют микропроцессорные ядра. Microsoft Visual Studio не содержит инструментов, позволяющих отслеживать временные характеристики исполнения программы, чтобы оценить насколько приложение активно использует все микропроцессоры, находящиеся в системе, и в какой именно функции программы многопроточность реализована неэффективно. Мы дополняем Visual Studio таким функционалом профилировки многопоточных приложений.
Ваша область интересов — алгоритмы распознавания сигналов и обработка изображений. Расскажите подробнее?
Это первая область моих научных интересов, еще со времени работы над моей диссертацией вместе с научным руководителем. Если коротко, то я занимался разработкой признаков для распознавания многомерных сигналов, специализируясь в медицинской области. Мы пытались понять, каким образом можно выделить некоторые специфические признаки из сигналов энцефалографии, по которым можно было бы распознавать различные патологии. Эта тема продолжает меня интересовать, сейчас я довольно часто сталкиваюсь с компаниями, которые занимаются обработкой сигналов и изображений, и имеют свои собственные разработки в области распознавания образов. Я продолжаю сотрудничать со своим научным руководителем в этой области. Это не имеет никакого отношения к моей непосредственной работе, но эта тема находится в области моих интересов.
То есть у вас есть время и для работы, и для науки?
Да — вне работы я занимаюсь научной деятельностью.
А как Intel к этому относится?
Intel к любой научной деятельности относится очень хорошо, поощряет научные публикации и участие в конференциях.
Алгоритмы, которыми вы занимаетесь — они где-то используются?
Знаете, когда занимаешься научной деятельностью, важно понять, чем конкретно ты занимаешься — фундаментальными научными разработками, или прикладными. Я занимаюсь разработкой базовых методик и алгоритмов, а их применение — область, в которой работают конкретные компании, занимающиеся разработкой диагностического оборудования. Их можно воплотить в программном виде и применять в различных областях.
Но у вас есть и хобби — дайвинг.
Верно.
![image](https://habrastorage.org/getpro/habr/post_images/7e8/a7b/01d/7e8a7b01d4b1c11568a49136f683c391.jpg)
Есть сертификация?
Да, я сертифицированный дайвер, и регулярно погружаюсь как в России, так и за рубежом.
Выходит, вы всесторонне развитая личность — сочетаете и научную деятельность, и полезный труд, и экстремальные виды спорта?
Дело тут не во всесторонности — дайвингом я занимаюсь, чтобы голова не вскипела от всех научных и рабочих моментов (смеется). Иногда нужно чем-то заняться, чтобы отвлечься от работы — экстремальный отдых как раз очень хорошо от нее отвлекает.
Не стесняйтесь участвовать в обсуждении, задавайте вопросы!