В рамках проекта Rootbeer GPU Compiler (https://github.com/pcpratts/rootbeer1) подготовлен открытый компилятор, позволяющий разработчикам программировать GPU на языке Java или организовать выполнение существующего Java кода с задействованием GPU. Принцип работы Rootbeer сводится к трансляции байткода Java в формат CUDA-приложения, выполняемого с использованием GPU. Код Rootbeer распространяется под лицензией MIT. Проект разработан при поддержке Национального научного фонда США.В отличие от Java-биндингов для CUDA и OpenCL, Rootbeer не требует от разработчика преобразования сложных иерархий объектов в набор примитивных типов и отдельного написания GPU-ядра на CUDA или OpenCL. Rootbeer позволяет автоматически и в прозрачном режиме преобразовать произвольную иерархию Java-объектов в инструкции GPU и обеспечить написание GPU-ядра целиком на Java. Возможность автоматической генерации кода CUDA на основании произвольного кода Java обеспечена благодаря использованию методов статического анализа байткода Java. Статический анализ выполняется с использованием наработок проекта Soot (http://www.sable.mcgill.ca/soot/).
Из не поддерживаемых в Rootbeer возможностей Java отмечаются рефлексия, нативные методы, засыпание в режиме мониторинга, динамическое обращение к методам. На стадии разработки находится код для обеспечения работы сборщика мусора. С позиции производительности, многое зависит от типов решаемых задач. Например, в тестах на умножения матриц высокой размерности и подбор элементов ряда Фурье, Rootbeer позволил ускорить выполнение программ в 67 раз и 58 раз, но в тесте наложения фильтра на изображение наблюдалось замедление в 3.8 раза.С практической стороны использование сводится к трансляции Java-кода в представление, задействующее вычисления на стороне GPU: "<font color="#461b7e">java -jar Rootbeer.jar InputJar.jar OutputJar.jar</font>". После чего преобразованный jar-архив может быть запущен как обычная программа: "<font color="#461b7e">java -jar OutputJar.jar</font>".
URL: http://developers.slashdot.org/story/12/08/12/0056228/rootbe...
Новость: http://www.opennet.me/opennews/art.shtml?num=34558
> java -jar Rootbeer.jar InputJar.jar OutputJar.jarништяг..
..на входе один блоб (возможо проприетарный?) а на выходе другой :-D
вот до чего дошли blob-технологии!
А что не нравится? Инструмент открытый. Опять же - это значит, что можно любой, даже чужой, код попытаться так обработать. Ну и джава - это, вообще говоря, полублоб - не зря без применения специальных мер она декомпилириуется чуть ли не идеально.
Ну так jar это не совсем блог
Вы бы хоть посмотрели, что такое jar.
И что это даёт?
Использование GPU в программах на Java. Дальше могут всяческие число-дробилки на этом делать или массово-параллельные системы.
Уже 1,5 года есть Diablo Miner, использующий OpenCL. Какое расширение используется я не знаю.
> Уже 1,5 года есть Diablo Miner, использующий OpenCL. Какое расширение используется я не знаю....а потом пришел Кон Коливас и показал всем как надо майнеры писать. Разом заткнув поделия на яве и питоне и по скорости и по скромности нецелевого пожирания ресурсов :)
> И что это даёт?Оправдание покупки NVIDIA Tesla :)
Почему потомки Николы Тесла не подали иск на Nvidia за нарушение копирайтов ?
> Почему потомки Николы Тесла неМожет, потому что детей у него не было?
а жаль
они уже у тесла моторс... или как там компанию которая суперэлектрокары делать.
Жалко, с рефлексией не работает, удобная штука.
А что это за рефлекция такая?
http://en.wikipedia.org/wiki/Reflection_(computer_programming)
> http://en.wikipedia.org/wiki/Reflection_(computer_programming)Ответ не верный ! В статье ясно написано - рефлексия, а это означает следующее:
Рефле́ксия (от позднелат. reflexio — обращение назад) — междисциплинарное понятие с многовековой историей, обращение внимания субъекта на самого себя и на своё, в частности, на продукты собственной активности, а также какое-либо их переосмысление.
( http://ru.wikipedia.org/wiki/%D0%A0%D0%B... )
А твоя ссылка говорит о reflection, по-русски это называется - ОТРАЖЕНИЕ. Термин давно устоявшийся и поэтому его и нужно применять, а не выдумывать свой, никому ненужный "фольклёр".
Не встречал ещё программистов использующих термин "отражение" в данном случае.
Лично вам могу посоветовать изучить правописание слова "фольклор".
эти так называемые «программисты» и функционалы у программ находят заместо фнкциональности. больные люди, что возьмёшь…
> Не встречал ещё программистов использующих термин "отражение" в данном случае.Гуглим следующее словосочетание: "java отражение", обращаем внимание на даты
написания статей и книг.> Лично вам могу посоветовать изучить правописание слова "фольклор".
Именно поэтому слово "фолклёр" взято в кавычки
>Гуглим следующее словосочетание: "java отражение", обращаем внимание на даты написания статей и книг.Первые 2 страницы гугля (дальше смотреть не стал) выдали вот эти книги:
Зеркальное отражение - Клэнси Том
Отражение во мгле - Цормудян Сурен
Скачать книгу Отражение Ворона
Сборник рассказов "Зеркала, отражения"
Казаков Д.- Идеальное отражениеКасательно жавы только статьи, форумы и вики с 2008 по 2012.
Я думаю вам стоит пояснить свою мысль.
>>Гуглим следующее словосочетание: "java отражение", обращаем внимание на даты написания статей и книг.
> Первые 2 страницы гугля (дальше смотреть не стал) выдали вот эти книги:
> Зеркальное отражение - Клэнси Том
> Отражение во мгле - Цормудян Сурен
> Скачать книгу Отражение Ворона
> Сборник рассказов "Зеркала, отражения"
> Казаков Д.- Идеальное отражение
> Касательно жавы только статьи, форумы и вики с 2008 по 2012.
> Я думаю вам стоит пояснить свою мысль.Гугление по "java отражения" первой же ссылкой выдаёт вот это:
"Java: магия отражений" ( URL: http://samag.ru/archive/article/28 )
Статья из архива журнала "Системный Администратор" за 2002 год.
>Java: магия отраженийУ меня не первой, да и гуль почему то подписал её как 2011, а внутрь не лазил. Тем не менее
http://www.rsdn.ru/article/java/tiger.xml
Тоже 2002, используется "рефлексия".А вообще ситуация как с типом bool (boolean) по-русски то он конечно "логический", только вот мало кто его так называет.
>>Java: магия отражений
> У меня не первой, да и гуль почему то подписал её как
> 2011, а внутрь не лазил. Тем не менееНапрасно, надо было заглянуть.
> http://www.rsdn.ru/article/java/tiger.xml
> Тоже 2002, используется "рефлексия".Заглянул в "классику жанра":
Философия Java. Библиотека программиста. 3-е изд./Б. Эккель -- СПб.:Питер, 2003. -- 971 .:ил.
ISBN: 5-88782-105-1В главе 10 ( "Определине типов" ) на странице 397 читаем название подраздела
"Отражение: динамическая информация о классе".
> А вообще ситуация как с типом bool (boolean) по-русски то он конечно
> "логический", только вот мало кто его так называет.С "булевским типом" соглашусь, а вот рефлексии до сих пор ни разу не слышал, тока на английский манер: рефлекшн.
FIX:В главе 10 ( "ОпределЕНИЕ типов" ) на странице 397 читаем название
> А что это за рефлекция такая?http://ru.wikipedia.org/wiki/Рефлексия
скайнет не за горами.
Какой нафиг Скайнет, java-программы как носки - носить может только хозяин,
при переносе на другой компьютер они полностью нарушают микрофлору.Собственно, для работы жава-приложений компьютер надо подстраивать под
программу, а не наоборот, ибо бесполезно. По этому, чтоб снизить ущерб
психике пользователя, программисты, на всякий случай, суют в дистрибутив
своей поделки, версию JVM c которой у них работало.
> Какой нафиг Скайнетну дык рефлексии же. а там, говорят, и до разума недалеко. правда, боюсь, что ИИ на жабе будет ложку в ухо нести. соседу.
>> Какой нафиг Скайнет
> ну дык рефлексии же.Как бы они этого не хотели, но программа не может сама себя менять,
хотя бы из-за того, что программа не знает смысла своего существования
и отсутствия главного инстинкта.
многие жаба-кодеры не сильно отличаются — а живут же…
> Как бы они этого не хотели, но программа не может сама себя менять,Полиморфные вирусы смотрят на тебя как на ... :)
Тролли смотрят на тебя как на... еду. =)
> Тролли смотрят на тебя как на... еду. =)Это ты павлину с его опрометчивыми заявлениями скажи :)
судя по вышесказанному, вы хреновенько владеете java-окружением
> судя по вышесказанному, вы хреновенько владеете java-окружениемСудя по вышесказанному они ненавязчиво троллят наивных чукотских жабистов :)
http://en.wikipedia.org/wiki/Write_once,_run_anywhere не?
> http://en.wikipedia.org/wiki/Write_once,_run_anywhere не?Кмк интереснее объектная-ориентированность и способность легче описывать сложные системы. В пику Сям. Тогда существование и версия модулька JRE дело маловажное.
> Кмк интереснее объектная-ориентированностьэто ж откуда она там взялась? Алан Кей делает даблфэйспалм.
>> Кмк интереснее объектная-ориентированность
> это ж откуда она там взялась? Алан Кей делает даблфэйспалм.это куда ж она оттудва делась? Джеймс Гослинг в недоумении.
> это куда ж она оттудва делась? Джеймс Гослинг в недоумении.вот именно: до сих пор в недоумении, как на этом его вы… высокотехнологичном продукте ещё и пишут что-то. а Алан Кей вообще на большинство современных так называемых «ооп-языков» смотрит как Свиборг. потому что основную концепцию ООП — посылку сообщений — они где-то потеряли. только Objective C стоит с троллфэйсом.
>> это куда ж она оттудва делась? Джеймс Гослинг в недоумении.
> вот именно: до сих пор в недоумении, как на этом его вы…
> высокотехнологичном продукте ещё и пишут что-то. а Алан Кей вообще на
> большинство современных так называемых «ооп-языков» смотрит как Свиборг. потому
> что основную концепцию ООП — посылку сообщений — они где-то потеряли.А может всё таки не потеряли?
> только Objective C стоит с троллфэйсом.
Это не троллфейс - это врождённое уродство.
Ну ладно, в этой ветке и так мало связанный сообщений. Но что такое кмк?Гугуль:
КМК — аббревиатура, может расшифровываться как
Карманный мультимедийный компьютер
Кемеровский молочный комбинат
Киржачский машиностроительный колледж
Кировский медицинский колледж
Кировский молочный комбинат
Коломенский медицинский колледж
Костромской медицинский колледж
Кузнецкий металлургический комбинат
Культура многоваликовой керамики
Как мне кажется
+Красноярская мебельная компания
Как мне кажется.
> А что это за рефлекция такая?У переводчика Хорстона - отражение. На лету получать и использовать имена переменных, функций, классов, их значения. Можно в пяток строк вызвать 250 функций, зная принцип построения имён (имея заранее список). И т.п.
Получение данных о классах, полях, методах и т.д. на ходу и работа с ними.Например, использование приватных полей:
SomeClass obj = new SomeClass();
try{
Field f = obj.getClass().getDeclaredField("someValue");
f.setAccessible(true);
System.out.println(f.get(obj));//Тут будет 1.
f.set(obj, 2);
System.out.println(f.get(obj));// А тут уже 2.
}catch(Exception e){
e.printStackTrace();
}
public class SomeClass{
private int someValue;
public SomeClass(){
someValue = 1;
}
}
Ахтунг не арбайтен$ ant
...
[javadoc] Standard Doclet version 1.6.0_29
[javadoc] Building tree for all the packages and classes...
[javadoc] /tmp/rootbeer1/src/edu/syr/pcpratts/rootbeer/generate/misc/BasicBlock.java:81: warning - @return tag has no arguments.
[javadoc] /tmp/rootbeer1/src/edu/syr/pcpratts/rootbeer/generate/opencl/body/OpenCLBody.java:59: warning - @param argument "body" is not a parameter name.
[javadoc] /tmp/rootbeer1/src/edu/syr/pcpratts/rootbeer/runtime/remap/Random.java:75: warning - Tag @link: reference not found: java.util.concurrent.ThreadLocalRandom
[javadoc] /tmp/rootbeer1/src/edu/syr/pcpratts/jpp/typetable/Combinatorics.java:24: warning - @return tag has no arguments.
[javadoc] /tmp/rootbeer1/src/edu/syr/pcpratts/rootbeer/generate/bytecode/FieldReadWriteInspector.java:78: warning - @return tag has no arguments.
[javadoc] /tmp/rootbeer1/src/edu/syr/pcpratts/rootbeer/generate/bytecode/FieldReadWriteInspector.java:90: warning - @return tag has no arguments.
[javadoc] Building index for all the packages and classes...
[javadoc] Building index for all classes...
[javadoc] Generating /tmp/rootbeer1/dist/javadoc/stylesheet.css...
[javadoc] 6 warnings
$ ./pack-rootbeer
java.lang.NullPointerException
at pack.Main.findJarFilesInDirectory(Main.java:85)
at pack.Main.runOnDirectory(Main.java:79)
at pack.Main.run(Main.java:31)
at pack.Main.main(Main.java:18)
Короча там косяк мелкий, собирать надо так$ git clone git://github.com/pcpratts/rootbeer1.git
$ cd rootbeer1/
$ mkdir dist/lib
$ ant
$ ./pack-rootbeerПускать так:
$ java -jar ./Rootbeer.jar /some/where/some/Blob.jar SuperBlob.jar;
git хранит только файлы, пустые директории никак? )
> git хранит только файлы, пустые директории никак? )нет. и не надо. пусть их система сборки создаст при необходимости, или софтина после запуска.
Поэтому прогрессивное человечество придумало файлики .keep
Похоже они уже закоммитили исправление сборки, у меня сразу собралось. Монструозный конечно jar - на 13 мегабайт.
Мало того, что Rootbeer.jar монструозный, так он еще после конвертации каждый jar проекта увеличивает на эти 13 мегабайт, в итоге проект на котором тестировал, разросся с 8 мегабайт до 170.
Они знают толк в извращениях... особенно улыбнуло "наблюдалось замедление в 3.8 раза". Крутая у жабистов акселерация. Я так тоже что-нибудь акселерировать могу :)
Через строку читаешь?> Например, в тестах на умножения матриц высокой размерности и подбор элементов ряда Фурье,
> Rootbeer позволил ускорить выполнение программ в 67 раз и 58 раз,
> но в тесте наложения фильтра на изображение наблюдалось замедление в 3.8 раза.Умножение матриц в 67, Фурье в 58 раз, а вот с наложением не проканало.
очень смешно, особенно в свете того, что код выполняют разные устройства
какой код - прочитайте внимательно
разный! код выполняют разные устройства ;)
> какой код - прочитайте внимательно
> разный! код выполняют разные устройства ;)ну так раз устройства разные - как можно вообще разы считать? и говорить об эффективности? гпу и цпу разные бывают...
Трактор и Ферарри можно сравнивать?
> Трактор и Ферарри можно сравнивать?конечно: отстой эта ваша фераря, на поле сразу угрузла и ни бибип.
alparapi вроде как подобным образом работает (прадва, больше в сторону ati уклон - хотя и nvidia должна отрабатывать в теории); цифры не приведу, но пробовал - неплохой результат
Оракл еще спит? Или после многолетней тяжбы с уже не хочется?
Я SWT и Azureus конвертнул, теперь качаю торренты на GPU :D
А если витую пару распаять под DVI, и воткнуть в видюху, быстрее качать будет???
> А если витую пару распаять под DVI, и воткнуть в видюху, быстрее качать будет???Накаркал, бл: ethernet является куском нового стандарта HDMI. Ну то-есть линк HDMI до кучи умеет еще и эзернетом выступать. Ы? :)
Реквест на впиливание в Огнелис и Хромиум!