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, пример кода, ссылка на скачивание

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

fhh
()

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


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

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

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


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


eXOR ★★★★★
()

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

mrdeath ★★★★★
()
Ответ на: комментарий от ip1981

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

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

Sylvia ★★★★★
()

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

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

Sylvia ★★★★★
()
Ответ на: комментарий от ip1981

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 ★★★★★
()

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

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

Sylvia ★★★★★
()
Ответ на: комментарий от eXOR

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

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

Liosha_Syrnikov
()

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

sda00 ★★★
()
Ответ на: комментарий от stalkerg

смешно то что у 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 ★★★★★
()
Ответ на: комментарий от Liosha_Syrnikov

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

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

S_wine
()
Ответ на: комментарий от sda00

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

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

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

Sylvia ★★★★★
()
Ответ на: комментарий от S_wine

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

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

Eugeny_Balakhonov ★★
()
Ответ на: комментарий от Sylvia

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

sda00 ★★★
()
Ответ на: комментарий от Eugeny_Balakhonov

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

sda00 ★★★
()
Ответ на: комментарий от sda00

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 ★★★★★
()

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

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

kos
()
Ответ на: комментарий от Sylvia

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

sda00 ★★★
()
Ответ на: комментарий от sda00

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

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

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

Sylvia ★★★★★
()

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

PamidoR
()
Ответ на: комментарий от Sylvia

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

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

livecyrax
()
Ответ на: комментарий от eXOR

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

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

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

плюсую все.

dikiy ★★☆☆☆
()
Ответ на: комментарий от Bioreactor

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

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

dikiy ★★☆☆☆
()
Ответ на: комментарий от Sylvia

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

и НЕ должно!

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

www_linux_org_ru ★★★★★
() автор топика
Ответ на: комментарий от eXOR

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

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

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

www_linux_org_ru ★★★★★
() автор топика
Ответ на: комментарий от eXOR

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

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

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

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

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

x86_64 ★★★
()
Ответ на: комментарий от kos

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

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

www_linux_org_ru ★★★★★
() автор топика
Ответ на: комментарий от x86_64

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

... в отличие от слишком академичных ученых.

www_linux_org_ru ★★★★★
() автор топика
Ответ на: комментарий от Sylvia

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

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

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

www_linux_org_ru ★★★★★
() автор топика
Ответ на: комментарий от www_linux_org_ru

> Мое мнение -- Хаскель и прочие слишком академические языки не нужны, а технологии типа 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
()
Ответ на: комментарий от dikiy

> пытаться забить гвозди буханкой хлеба

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

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

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

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

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

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

dikiy ★★☆☆☆
()

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

ktotuta
()
Ответ на: комментарий от zenith

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

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

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

kos
()
Ответ на: комментарий от kos

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

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

www_linux_org_ru ★★★★★
() автор топика

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

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

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

Sylvia ★★★★★
()
Ответ на: комментарий от dikiy

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

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

Rolex ★★
()
Ответ на: комментарий от www_linux_org_ru

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

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

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

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

kos
()
Ответ на: комментарий от Sylvia

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

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

Led ★★★☆☆
()
Ответ на: комментарий от Bioreactor

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

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

Led ★★★☆☆
()
Ответ на: комментарий от Sylvia

>сборка с -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 ★★★☆☆
()
Ответ на: комментарий от Led

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

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

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

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

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