LINUX.ORG.RU

Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

 , ,


0

0

STM — Software Transactional Memory — один из перспективных методов повышения быстродействия программ за счет распараллеливания на современных (и будущих) многоядерных процессорах.

Несмотря на распостраненное мнение, что удобство реализации STM — это одно из преимуществ функциональных языков (таких, как Haskell), Intel продолжает совершенствовать поддержку STM в своем компиляторе C++, в том числе и для Linux.

Среди новых фич:

  • транзакционные new, delete, конструкторы и деструкторы
  • транзакционный вариант библиотеки STL
  • и многое другое (полный список по ссылке)

>>> cписок нового в версии 3, пример кода, ссылка на скачивание

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

А gcc подобным когда займётся?

ИМХО, выбран правильный путь.

P. S. Первый нах!

DarkAmateur ★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

А повышение быстродействия только на процах от Intel или от AMD тоже?

fhh ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>Несмотря на распостраненное мнение, что удобство реализации STM --
>это одно из преимуществ функциональных языков


Мда. Intel не первый раз что-то делает несмотря. Технологически получается кривенько, но рынок они нагибают в удобное им положение.

> Intel продолжает совершенствовать поддержку STM в своем компиляторе

> C++, в том числе и для Linux.


Вместо использования заточенных языков, Intel продолжает придумывать свой C++.


eXOR ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

может просто купить пару инженеров для написания патчей для gcc march=pentium4/etc?

mrdeath ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

нет, только для некоммерческого использования
или $$$ (intel c/c++ compiler & suite)

поскольку это прототип - там своя лицензия, не смотрела если честно... )

Sylvia ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

вообще странно что там особенно нового, если -parallel флаг поддерживается еще в ICC 10.x

эффект конечно от него слабенький, мало что распаралелливает

Sylvia ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

Pre-Release License Agreement for Pre-Release Software

1. PRE-RELEASE: The Materials are pre-release code, which may not be fully functional and which Int
el may substantially modify in producing any final version. Intel can provide no assurance that it
will ever produce or make generally available a final version.

2. LICENSE DEFINITIONS:

A. "Materials" are defined as the software, documentation, license key codes and other materials, i
ncluding any updates and upgrade thereto, for the applicable pre-release software (which may be fou
nd at http://whatif.intel.com/), that are provided to you under this Agreement.

3. LICENSE GRANT:

A. Subject to all of the terms and conditions of this Agreement, Intel Corporation ("Intel") grants
to you a non-exclusive, non-assignable copyright license to make only the minimum number of copies
of the Materials reasonably necessary for your internal testing and development of your products.

4. LICENSE RESTRICTIONS:

A. You may not reverse-assemble, reverse-compile, or otherwise reverse-engineer any software provid
ed solely in binary form.

B. You may not distribute any portion of Materials, whether in source or binary form, to any third
party.

Sylvia ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

$ /opt/intel_stm/bin/icc --version
icc (ICC) Prototype Edition 3.0 20081204
Copyright (C) 1985-2008 Intel Corporation. All rights reserved.

судя по дате тут , новость то с душком...

Sylvia ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> Вместо использования заточенных языков, Intel продолжает придумывать свой C++.

Интелу не все равно, под какое железо заточен язык (хорошо бы чтобы под конкретное). Они кроме того, что программки пишут, между делом еще и железо выпускают. :-)

Liosha_Syrnikov ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

непонимаю чем это лучше OpenMP?

Мне OpenMP нра.

stalkerg ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

уважаемые гуру, поправьте пожалуйста, но imho - что icc, что продукт выше предполагает использование только Intel решений, не так ли? эт к тому, что в наших яслях только Opteron-ы/AMD, а Intel лишь на некоторых ноутах.

sda00 ★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

смешно то что у ICC давно есть OpenMP 3 , так что изобретение ими очередного велосипеда несколько непонятно, в примерах там явно заданы директивы для распаралелливания.

Помимо всего ICC "умеет" эвристически распаралелливать неадаптированный код
(-parallel), но делает это плохо

STM на неадаптированном C++ никак себя не проявляет

LZMA SDK (C++) (xz-utils 4.999 beta8)

ICC 10.1 -xT , PGO

Piped 611.84 MB in 00h06m21.67s: 1.60 MB/second
377.88user 1.71system 6:21.77elapsed 99%CPU


ICC STM 3.0 , -xT -Qtm_enable -parallel
Piped 611.84 MB in 00h06m15.89s: 1.62 MB/second
370.78user 1.52system 6:15.98elapsed 99%CPU

есть небольшое преимущество, но наверное за счет общих улучшений в компиляторе (ICC STM 3.0 базируется на ICC 11.0)

Sylvia ★★★★★ ()
Ответ на: Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition от Liosha_Syrnikov

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>Они кроме того, что программки пишут, между делом еще и железо выпускают. :-)

gcc на интелах не работает чтоль ? Иначе зачем нужен сабж ? Железо у них как и программы - проприетарное **оно.

S_wine ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

ICC до версии 10.0 отключали SSE инструкции на AMD, cpuid check оттуда никуда не делось и в 10.1 и в 11.0 , к сожалению то что я находила в сети достаточно устарело, а проверить то что сейчас с этим на AMD нет возможности.

Вообще существует патчер для бинарников (и самого компилятора) ,который модифицирует cpuid check для того чтобы программа работала на AMD, но зато она перестает работать на Интел )

Если есть время и желание - можете сами потестировать.
патчер -
http://freshmeat.net/projects/patch-authenticamd/

Sylvia ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>Они кроме того, что программки пишут, между делом еще и железо выпускают. :-) >gcc на интелах не работает чтоль ? Иначе зачем нужен сабж ? Железо у них как и программы - проприетарное **оно.

Работает, но вот в сравнении с icc он как раз и есть **оно ;)

Eugeny_Balakhonov ★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

ух ты, прям как в Mac OS X! на маках многие проги делают до сих пор себе харакири если пропалят, что проц от AMD. как же интересно всё устроено однако... если бы не печальный опыт - то давно рублём проголосовал бы за видеокарточки от AMD. или опять рискнуть...

sda00 ★★★ ()
Ответ на: Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition от Eugeny_Balakhonov

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>> Работает, но вот в сравнении с icc он как раз и есть **оно ;)
а аргументировать? imho: один лишь факт, что gcc не требует привязки к железу, все ваши аргументы весело и задорно спускает в унитаз.

sda00 ★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

10.1 - @ AMD
если были зададаны флаги -xW и выше

Fatal Error: This program was not built to run on the processor in your system.
The allowed processors are: Intel(R) Pentium(R) 4 and compatible Intel processors. Enables new optimizations in addition to Intel processor-specific optimizations.

вот ...

либо отключение SSE если скомпилировано без -xW + (-axW например)

11.0 / STM 3.0

работает нормально , инструкции не отключает



Sylvia ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

граждане, заявляющие про велосипед: почитайте уже что такое STM

сама идея STM, кстати, собирает довольно много критики. Интересно, получится ли из неё мейнстрим или нет.

kos ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

большое спасибо за информацию. всё равно после подобных "заходов" полагаю, что о "чистоте" кода не может быть и речи при компиляторе != gcc.

sda00 ★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

фактом является то что для компиляции значительного количества пакетов
ICC не подходит или не дает желаемых результатов, а вот GCC просто работает,
а кому не хватает оптимизации - почитайте уже man gcc наконец...

PS: специализированные проекты для расчетов , где нужно выжать все являются исключением, тут уже можно и подгонять код под компилятор

ну и с AMD некрасиво получилось, ICC default execution path = pentium3

Sylvia ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

Интел гавно, icc фтопку. С уважением, Тролль

PamidoR ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

бедный гцц

kto_tama ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> PS: специализированные проекты для расчетов , где нужно выжать все являются исключением, тут уже можно и подгонять код под компилятор

Для таких проектов скорее код нужно подгонять под микроархитектуру процессора. И, как мы уже обсуждали, gcc для такие проектов показывает хорошие результаты, если внимательно читается man gcc, конечно :)

livecyrax ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

Молодцы, интеля!

А АМД когда этим займется? Или АМД ведет себя как крыса-кун?

Bioreactor ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>>Несмотря на распостраненное мнение, что удобство реализации STM -- это одно из преимуществ функциональных языков

>Мда. Intel не первый раз что-то делает несмотря. Технологически получается кривенько, но рынок они нагибают в удобное им положение.

>Вместо использования заточенных языков, Intel продолжает придумывать свой C++.

плюсую все.

dikiy ★★☆☆☆ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>А АМД когда этим займется? Или АМД ведет себя как крыса-кун?

Надеюсь, что никогда. Ибо это дурацкое занятие - пытаться забить гвозди буханкой хлеба, предварительно подержав ее 2 месяца до очерствения )

dikiy ★★☆☆☆ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> STM на неадаптированном C++ никак себя не проявляет

и НЕ должно!

Похоже, все подумали что STM -- это еще одна из оптимизаций типа раскидывания по SSE регистрам. Это *совсем* не так. Это одна из новых парадигм написания программ.

www_linux_org_ru ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> Мда. Intel не первый раз что-то делает несмотря. Технологически получается кривенько, но рынок они нагибают в удобное им положение. ... Вместо использования заточенных языков, Intel продолжает придумывать свой C++.

Плохой из меня тролль :-( "несмотря" это была подколка хаскелистов.

Мое мнение -- Хаскель и прочие слишком академические языки не нужны, а технологии типа STM можно естественно интегрировать в виртуальную машину с++ (плоское сегментированное адресное пространство с указателями). Что собственно интел и делает.

www_linux_org_ru ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>>Несмотря на распостраненное мнение, что удобство реализации STM -- >это одно из преимуществ функциональных языков

> Мда. Intel не первый раз что-то делает несмотря. Технологически получается кривенько, но рынок они нагибают в удобное им положение.

>> Intel продолжает совершенствовать поддержку STM в своем компиляторе > C++, в том числе и для Linux.

> Вместо использования заточенных языков, Intel продолжает придумывать свой C++.

Они реалисты. В отличие от...

x86_64 ★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> граждане, заявляющие про велосипед: почитайте уже что такое STM

Кхм... поведение граждан можно было и предвидеть... в новости надо было написать "парадигма", но не люблю я buzzword-ы...

www_linux_org_ru ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> фактом является то что для компиляции значительного количества пакетов ICC не подходит или не дает желаемых результатов, а вот GCC просто работает, а кому не хватает оптимизации - почитайте уже man gcc наконец...

Опции оптимизации вместо STM не помогут. Интелловский компилятор я рассматриваю не как альтернативу ж++, а как полезное учебное наглядное пособие, дабы поучиться использовать STM.

З.Ы. Да и делать свою поддержку намного проще, если взглянуть на альтернативную реализацию (и код, который они генерят).

www_linux_org_ru ★★★★★ ()
Ответ на: Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition от www_linux_org_ru

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> Мое мнение -- Хаскель и прочие слишком академические языки не нужны, а технологии типа STM можно естественно интегрировать в виртуальную машину с++ (плоское сегментированное адресное пространство с указателями). Что собственно интел и делает.

Не только Intel. Банально, но... http://en.wikipedia.org/wiki/Software_transactional_memory -> Implementations

В частности для GCC работа в этом направлении тоже ведётся: http://www.hipeac.net/node/2419

Активно занимается этим направлением Red Hat: http://blog.internetnews.com/skerner/2009/04/going-deep-into-gcc-44-with-re.html

livecyrax ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>сравнение != доказательство

>По существу ничего Вы не сказали. Одни эмоции.

А что доказывать-то. Неужели не понятно, что распараллеливание в ФЯП заложено by design. А это STM - это лишь костыли.

dikiy ★★☆☆☆ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

Linux, C, одноядерный проц, GCC - наше все!

ktotuta ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> > сама идея STM, кстати, собирает довольно много критики

> А типа треды много критики не вызывают?

Ясен пень вызывают. Но широко известных вариантов уже как минимум два: STM и Actors, и чё-то ни один из них не кажется мне достаточно хорошим и универсальным.

kos ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> Но широко известных вариантов уже как минимум два: STM и Actors, и чё-то ни один из них не кажется мне достаточно хорошим и универсальным.

На тему Actors & c++ что можно прочесть?

www_linux_org_ru ★★★★★ ()

плохая новость

ICC 11.0 зачем то убрали из некоммерческих загрузок,
если потыкать по ссылкам - грузится 10.1.022

или я плохо ищу на их сайте..

Sylvia ★★★★★ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>А что доказывать-то. Неужели не понятно, что распараллеливание в ФЯП заложено by design. А это STM - это лишь костыли.

Ну тут и в ФЯ нюансов много, но в целом, +1.

Rolex ★★ ()
Ответ на: Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition от www_linux_org_ru

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

> На тему Actors & c++ что можно прочесть?

Про С++ не знаю, но вообще на википедии вполне нормальная статья :) http://en.wikipedia.org/wiki/Actor_model

> А что доказывать-то. Неужели не понятно, что распараллеливание в ФЯП заложено by design. А это STM - это лишь костыли.

В ФЯ заложено распараллеливание кода, но не данных. STM нужен именно для распараллеливания доступа к shared state.

kos ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>Вообще существует патчер для бинарников (и самого компилятора) ,который модифицирует cpuid check для того чтобы программа работала на AMD, но зато она перестает работать на Интел )

Странно... У меня почему-то не "перестает работать на Интел" - работает и на Intel, и на AMD

Led ★★★☆☆ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>А АМД когда этим займется?

Занимается. Но AMD не изобретает лисапет, а оптимизирует для своих CPU Open64 и раздаеёт его под GPL

Led ★★★☆☆ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

>сборка с -march (-x) без -mtune (-ax)

-x<processor> (i32 and i64em)

Tells the compiler to generate optimized code specialized for the processor that executes your

program. <processor> is a value used to target specific processors or microarchitectures.

Указанный вами выше -xT включает SSSE3 есть только у Intel'овских CPU и VIA Nano:

http://en.wikipedia.org/wiki/SSSE3

Ничего удивительного, что на AMD не работало.

Led ★★★☆☆ ()

Re: Intel выпустила C++ STM Compiler версии 3.0 Prototype Edition

не совсем ) причем даже не на АМД, поскольку у меня его нет

бинарники -xW (ia32 , pentium4, sse2)

патчила patch-AuthenticAMD, который меняет cpuid check с GenuineIntel на AuthenticAMD, таким образом интеловский процессор для него становится чужим (как бы АМДшным)

результат - отказ в запуске из за того что процессор не соответствует тому что ожидается получить в cpuid check

Sylvia ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.