тренды 2017

User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: тренды 2017

Post by Мальчик-Одуванчик »

flip_flop wrote:
Мальчик-Одуванчик wrote:
Снежная Королева wrote:А что уважаемые посоветуют: пробовать параллелизм на кластере 100-900 nodes, или пробовать GPU computing? Времени мало как всегда.
Золотой серединой, на мой взгляд, был бы xeon phi последнего поколения. В том смысле что код, отлаженный на обычной рабочей станции без переделок можно прогнать на железке в 60-70 нодов и более.
То есть как бы преимущество GPU при совместимости по бинарному коду с обычным Хеон.
Именно так :umnik1: :fr:

Для датологов есть много интересного в Intel Distribution of Python, MKL+DAAL: оптимизированные элементы ML/DL. Работает как на обычном Xeon, так и на Xeon Phi (KNL).

Завтра будут интересные пресс-релизы.
Походу нечаянно я выдал Ваши мысли, озвученные полугодом ранее, за свои.
Но вот после этого сообщения выше вспомнил, что именно Ваши развернутые ответы подтолкнули заинтересоваться phi, о существовании которого даже и не подозревал, в примении к tbb и Cilk
User avatar
Boriskin
Уже с Приветом
Posts: 18862
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: тренды 2017

Post by Boriskin »

Снежная Королева wrote: Например, стандартные операции с матрицами есть в Armadillo, есть также BLAST, но иногда надо циклом прогнать каждый элемент матрицы, а матрица большааая.
если матрица разряженная - то обычно ничего со всеми ее элементами делать не надо, есть вагон и тележка методов, которые решают уравнение итерационно или "ленточными методами". Если матрица не разреженная - то было бы интересно узнать, откуда она вообще возникла. :-)

ЗЫ "большие" матрицы в современной выч математике - это где-то от миллион-на-миллион.
Тупизна как Энтропия. Неумолимо растет.
User avatar
Boriskin
Уже с Приветом
Posts: 18862
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: тренды 2017

Post by Boriskin »

Мальчик-Одуванчик wrote: Давеча баловался со сравнением прохода по типовым контейнерам различными способами, включая пераллелизм.
Так у меня даже на банальном векторе Parallel_for раз в десять оказался медленнее чем стандартный for each.
Такой вот нежданчик на четырех ядрах.
А профайлить и посмотреть, где сдыхает? Имхо, первый претендент - полурандом доступ к памяти из параллелей супротив пробега подряд.
Тупизна как Энтропия. Неумолимо растет.
User avatar
AndreyT
Уже с Приветом
Posts: 2997
Joined: 14 Apr 2004 01:11
Location: SFBA (было: Минск, Беларусь)

Re: тренды 2017

Post by AndreyT »

Мальчик-Одуванчик wrote: Рассмотрим обобщенную функцию с несколькими специализациями для разных типов входных параметров.
Стандарт гарантирует что в памяти займет место лишь код инстанцированных конкретным типом, а остальные будут отброшены.

К примеру:
template<typename T> void f(T t) { ......}; // обобщенная функция
template<> void f<char>(char c) { ... } // специализация для типа char
template<> void f(double d) { ....} // специализация для типа double
int main()
{
f<int>(1); // вызов обобщенной функции
f('a'); // вызов специализированной
}

f(double d) - будет отброшена на этапе компиляции и ее код не будет занимать место в памяти
Нет. Ни в коем случае.

Как только вы выполнили explicit specialization шаблона функции, вы фактически получили в результате обыкновенную нешаблонную функцию, которая подчиняется ODR (One Definition Rule) "на общих основаниях", т.е. правилам для самых обычных нешаблонных функций. А именно: такая специализация должна быть определена не более одного раза во всей программе. Т.е. определение такой специализации вы ни в коем случае не будете помещать в заголовочный файл (ибо сразу схлопочете нарушение ODR), а будете вынуждены поместить в некий один-единственный файл реализации, из которого эта специализация будет линковаться всюду, где она нужна. Т.е. для explicitly specialized шаблона функции все работает именно и строго точно так же, как и в случае с обычной функцией.

Таким образом в классической С++ архитектуре, основанной на принципе раздельной компиляции единиц трансляции, компилятор будет вынужден безусловно компилировать в объектный файл все ваши explicitly specialized шаблоны. У него просто нет выбора: компилятор не имеет ни малейшего представления о том, нужна или не нужна эта специализация в других единицах трансляции. Поэтому никакого обещанного вами отбрасывания ненужного кода на этапе компиляции он выполнить не может. Ваша `template<> void f(double d)` отброшена не будет, а будет честно включена компилятором в объектный файл.

О каком-то отбрасывании ненужного кода тут можно будет вести речь только на стадии линковки/глобальных оптимизацией (per-function linking и т.п.). Но это уже совсем другая история, к специализациям шаблонов никакого отношения не имеющая.

И, разумеется, никакой гарантии отбрасывания такого кода в стандарте языка нет.
Best regards,
Андрей
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: тренды 2017

Post by M. Ridcully »

Ну когда, когда этот уродливый монстр C++ сдохнет, наконец?
Мир Украине. Свободу России.
User avatar
Think_Different
Уже с Приветом
Posts: 4864
Joined: 21 Oct 2016 14:32
Location: NYC

Re: тренды 2017

Post by Think_Different »

Никогда. С++ is the best.
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: тренды 2017

Post by M. Ridcully »

Think_Different wrote:Никогда. С++ is the best.
You need help, bro - и я тебя спасу! Знай, что C++ - это тоталитарная секта, говорю это как человек, состоявший в ней, наверное, лет 20.
Беги подальше, куда угодно, куда глаза глядят - только подальше от C++!
Мир Украине. Свободу России.
User avatar
Think_Different
Уже с Приветом
Posts: 4864
Joined: 21 Oct 2016 14:32
Location: NYC

Re: тренды 2017

Post by Think_Different »

sorry, but most top IBs and HFs are primarily looking for C++ coders. I'll stick to C++ (if you don't mind :) )

потому, что больше я ничего и не знаю :D
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: тренды 2017

Post by M. Ridcully »

Что-ж, я попытался, и моя совесть теперь чиста. Не спасётся тот, кто не хочет спастись!
Ну и гибни теперь, среди virtual destructors, partial specialization, static polymorphism, move semantics, const-correctness, lock-free synchronization, RAII, RTTI, CRTP and other demons!
Мир Украине. Свободу России.
User avatar
Think_Different
Уже с Приветом
Posts: 4864
Joined: 21 Oct 2016 14:32
Location: NYC

Re: тренды 2017

Post by Think_Different »

я предпочитаю жить в реальном мире. в своё время мне промыли мозги, что мол будущее за functional programming вроде Haskell. пришлось потратить время, почитать и поработать (тогда работал в standard chartered, где haskell широко используется). но это будущее всё никак не наступит :cry:

а что посоветуте? как будет спасать? :roll:
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: тренды 2017

Post by АццкоМото »

M. Ridcully wrote:
Think_Different wrote:Никогда. С++ is the best.
You need help, bro - и я тебя спасу! Знай, что C++ - это тоталитарная секта, говорю это как человек, состоявший в ней, наверное, лет 20.
Беги подальше, куда угодно, куда глаза глядят - только подальше от C++!
такая же фигня, Джульетта (без обид)
что интересно, 25 лет назад, когда мне было 16 и умные посоны пытались меня приобщить к С++ и объясняли, что такое классы, я вставал на дыбы типа "дык я же могу завести структуру и передавать в функции указатели и будет то же самое, что и класс".

это было очень глупо и наивно. ну, 16 лет, чего там. потом тоже был адептом С++ примерно те же самые 20 лет, может быть, чуть меньше. а потом пришло понимание, что наворотили слишком много нюансов с этим языком. не выстрелить себе в ногу становится практически невозможно. лучше уж как-нибудь... типа простой С, либо уже, прости г-ди, что-то из мира джава-йызыков (саму джаву ненавижу). ну и Kotlin Native вселяет надежду
Мат на форуме запрещен, блдж!
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: тренды 2017

Post by M. Ridcully »

Think_Different wrote:работал в standard chartered, где haskell широко используется
Wow, вам платили за то, чтобы писать на Haskell - да вы редкий зверь!
Прикольная тема, кстати, но больше подходит для мыслительной гимнастики, чем для реальной жизни. ИМХО проще не упускать из виду, где есть какой state, но при этом пользоваться чем-то попрактичней.
Think_Different wrote:а что посоветуте? как будет спасать? :roll:
Боюсь, у нас доменные области слишком разные. Побаловавшись всякой экзотикой вроде Haskell (забесплатно!), да и просто написав туеву хучу (за)умного C++, я потихоньку пришёл к выводу, что всякие хитровывернутые конструкии - от лукавого. Выразительные способности языка по созданию всяких глубоких абстракций не так важны, как читаемость кода, качетсво тулзов, удобство интерфейсов со внешним миром и скорость компиляции. К-сожалению, по-прежнему приходится писать на C++ и Питоне, но хочу попробовать переползти на Golang - в связке с C, при необходимости.
Мир Украине. Свободу России.
andmed
Posts: 7
Joined: 13 Sep 2015 20:48

Re: тренды 2017

Post by andmed »

АццкоМото wrote: а потом пришло понимание, что наворотили слишком много нюансов с этим языком. не выстрелить себе в ногу становится практически невозможно. лучше уж как-нибудь... типа простой С, либо уже, прости г-ди, что-то из мира джава-йызыков (саму джаву ненавижу). ну и Kotlin Native вселяет надежду
как пишущий на java сомневаюсь прям что она так прям лучше.. но выстрелить не даст, да))
C вещь. я вот для себя Lions про UNIX открыл из 60х. блин, идеоматично..
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: тренды 2017

Post by АццкоМото »

andmed wrote:
АццкоМото wrote: а потом пришло понимание, что наворотили слишком много нюансов с этим языком. не выстрелить себе в ногу становится практически невозможно. лучше уж как-нибудь... типа простой С, либо уже, прости г-ди, что-то из мира джава-йызыков (саму джаву ненавижу). ну и Kotlin Native вселяет надежду
как пишущий на java сомневаюсь прям что она так прям лучше.. но выстрелить не даст, да))
C вещь. я вот для себя Lions про UNIX открыл из 60х. блин, идеоматично..
Да ладно. Джава как раз выстрелить вполне дает, чего стоят только мемори лики в гарбадж-коллектед языке.
А вообще я пейсал не про джаву как таковую, которая выглядит, как творение Ди Джея Нудного (чего стоит только public static final... - чо, покороче нельзя никак?) а про JVM-экосистему в целом. Очень многообещающе выглядит Котлин, особенно после анонса Kotlin Native
Мат на форуме запрещен, блдж!

Return to “Работа и Карьера в IT”