Рубрика «Блог компании EPAM Systems»

Содержание

Часть 1: Введение.
Часть 2: Аппаратное обеспечение GPU и шаблоны параллельной коммуникации.
Часть 3: Фундаментальные алгоритмы GPU: свертка (reduce), сканирование (scan) и гистограмма (histogram).
Часть 4: Фундаментальные алгоритмы GPU: уплотнение (compact), сегментированное сканирование (segmented scan), сортировка. Практическое применение некоторых алгоритмов.
Часть 5: Оптимизация GPU программ.
Часть 6: Примеры параллелизации последовательных алгоритмов.
Часть 7: Дополнительные темы параллельного программирования, динамический параллелизм.

Disclaimer

Эта часть в основном теоретическая, и скорее всего не понадобится вам на практике — все эти алгоритмы уже давно реализованы в множестве библиотек.

Читать полностью »

Все мы когда-либо задумываемся о том, чтобы сменить место жительства. Кто-то не видит перспектив профессионального развития на родине, кто-то просто хочет сменить обстановку и узнать поближе другую культуру, а кто-то ищет способ переехать по причинам личного характера. EPAM Systems предоставляет уникальную возможность IT-специалистам из ближнего зарубежья узнать такую близкую, но в то же время неизвестную Беларусь, и построить карьеру в одной из крупнейших IT-компаний на территории СНГ.

image

Программа релокации существует в EPAM с мая 2013 года. За это время более 500 сотрудников воспользовались возможностью сменить место жительства и продолжить свое профессиональное развитие.Теперь возможность релокации появилась и у IT-специалистов из ближнего зарубежья, ранее не работавших в компании.
Читать полностью »

AWS Lambda и никаких серверов - 1 Лично для меня Amazon Web Services всегда ассоциировался с Infrastructure as a Service (IaaS), на базе которого каждый строил свои сервисы и приложения. Но есть и претендующие на роль платформы в виде сервиса, например, Elastic Beanstalk и OpsWorks. Хотя, по моему мнению, их с натяжкой можно считать PaaS, так как остается доступ к инфраструктуре, и вместе с тем головная боль по её администрированию.

Вся прелесть PaaS — это нулевые затраты на администрирование, простота использования и, как следствие, возможность сфокусироваться на коде приложения, забыв о том, как его разворачивать, интегрировать и поддерживать.

Итак, по словам представителей AWS, Lambda позволит забыть об инфраструктуре и запускать приложения в облаке, при этом получая интеграцию с другими сервисами Amazon, масштабируемость, низкую цену использования вычислительных ресурсов. Все, что нужно для старта, — написать функцию, ассоциировать её с событиями. После этого амазон автоматически выполнит функцию при каждом новом событии. О масштабировании и высокой доступности можно не думать: наша функция сможет обработать десятки тысяч запросов в час без каких-либо усилий с нашей стороны, без бекенда в традиционном его понимании.
Читать полностью »

Оптимизация кода под Pebble - 1На Хабре уже было несколько статей об общих принципах написания кода под Pebble. Для программирования используется язык C, а сам процесс разработки происходит в браузере, при этом компиляция происходит на удаленных серверах, и изменить ее параметры нет возможности, разве что установить Ubuntu и инсталлировать необходимые инструменты для офлайн-компиляции. Но даже такой ход не избавит основного ограничения – на устройстве доступно только 24 Кб оперативной памяти, которая используется и для скомпилированного кода, то есть действительно динамической памяти остается 5-10 Кб. И если для простых программ, которые используются как тонкие клиенты или дополнительные датчики для телефона, этого с головой достаточно, то для написания самодостаточной более или менее сложной игры, которой не нужен смартфон, этого откровенно мало. Вот здесь и понадобится оптимизация кода под размер.
Свои шишки я уже набила, и поэтому предлагаю поучиться на моих ошибках, которые я объединила в 16 советов. Некоторые из них могут показаться капитанскими, от некоторых избавит хороший компилятор с правильными флагами компиляции, но, надеюсь, некоторые из них кому-нибудь да и будут полезными.
Читать полностью »

Содержание

Часть 1: Введение.
Часть 2: Аппаратное обеспечение GPU и шаблоны параллельной коммуникации.
Часть 3: Фундаментальные алгоритмы GPU: свертка (reduce), сканирование (scan) и гистограмма (histogram).
Часть 4: Фундаментальные алгоритмы GPU: уплотнение (compact), сегментированное сканирование (segmented scan), сортировка. Практическое применение некоторых алгоритмов.
Часть 5: Оптимизация GPU программ.
Часть 6: Примеры параллелизации последовательных алгоритмов.
Часть 7: Дополнительные темы параллельного программирования, динамический параллелизм.
Читать полностью »

Еще одна статья о CUDA — зачем?

На Хабре было уже немало хороших статей по CUDA — раз, два и другие. Однако, поиск комбинации «CUDA scan» выдал всего 2 статьи никак не связанные с, собственно, алгоритмом scan на GPU — а это один из самых базовых алгоритмов. Поэтому, вдохновившись только что просмотренным курсом на Udacity — Intro to Parallel Programming, я и решился написать более полную серию статей о CUDA. Сразу скажу, что серия будет основываться именно на этом курсе, и если у вас есть время — намного полезнее будет пройти его.
Читать полностью »

В прошлый раз мы рассмотрели методы Zero Downtime Upgrade, которые могут быть применены в рамках PaaS варианта развертывания приложения Microsoft Azure. Сегодня мы сосредоточимся на способах, которые можно применить не только к облачным сервисам, а обычным виртуальным машинам в рамках IaaS развертывания.

Load Balanced Endpoint

Как мы знаем любая виртуальная машина, которая обсуживает запросы к вашему приложению делает это через определенный открытый порт (к примеру 80, 8080, 443 и т.д.). Если виртуальных машин несколько, то внутренний балансировщик нагрузки Microsoft Azure распределяет трафик между этими виртуальными машинами. Давайте подумаем, как можно использовать эту возможность для Zero Downtime Upgrade.

Zero Downtime Upgrade для приложения в Microsoft Azure. Часть 2: IaaS
Читать полностью »

Жизненный цикл любого приложения подразумевает его поддержку. Это могут быть какие-либо патчи, хот-фиксы, новые версии и т.д. В случае с desktop приложением все достаточно понятно и привычно. Однако давайте разберемся, как происходит механизм обновления вашего приложения, если оно размещено в облаке. В нашем случае мы будет разговаривать об облаке Microsoft Azure.

Итак, Microsoft Azure предоставляет достаточно широкие средства для автоматического обновления вашего приложения, причем как правило приложением в данный момент пользуются другие люди, поэтому важнейшим вопросом становится обновление «на лету», то есть незаметно для пользователя. Давайте рассмотрим все возможные способы, которые возможно применить для приложения Microsoft Azure.

Читать полностью »

Привет, коллеги!
Hadoop и автоматизация: Часть 1
Последние пару недель я трудился над интереснейшим (с моей точки зрения) занятием, которое представляло собой создание Hadoop-as-a-Service решения для приватного облака нашей компании. В первую очередь мне было интересно, что же за зверь Hadoop, почему так часто сейчас слышны сочетания слов Big Data и Hadoop. Для меня знакомство с Hadoop началось с чистого листа. Конечно же, я не являлся и не явлюясь Big Data специалистом, посему вдавался в суть на столько, на сколько необходимо было для понимания процессов в разрезе автоматизации развертывания кластера.
Читать полностью »

Приветствую, читатели!Резервное копирование и восстановление Graylog сервера
Дело было вечером, делать было нечего, и тут я вспомнил — я же хотел поделится с сообществом своим недавним боевым опытом.
Было у меня задание — автоматизировать процедуру резервного копирования и создать процедуру восстановления Graylog-сервера.
Читать полностью »