OberonCore https://forum.oberoncore.ru/ |
|
Исп-е Octave/Matlab для векторно-матричных вычислений https://forum.oberoncore.ru/viewtopic.php?f=27&t=3197 |
Страница 1 из 1 |
Автор: | ScrollLock [ Среда, 26 Январь, 2011 00:02 ] |
Заголовок сообщения: | Исп-е Octave/Matlab для векторно-матричных вычислений |
Отделено от темы: viewtopic.php?f=27&t=3020 У MATLAB и Octave есть ещё одно удобство, не связанное с интерфейсом: они изначально "заточены" под работу с матрицами и массивами, в них много векторизации. Это позволяет очень часто избавляться от циклов и часто повышает наглядность (да и надёжность тоже) кода, и снижает "оверхед" на интерпретацию. При создании новых алгоритмов заметил единственное явное неудобство: циклы работают медленно, поэтому приходится изощряться в плане векторизации операций в алгоритме. |
Автор: | Info21 [ Среда, 26 Январь, 2011 06:23 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для вывода графиков |
ScrollLock писал(а): При создании новых алгоритмов заметил единственное явное неудобство: циклы работают медленно, поэтому приходится изощряться ... Ха-ха-ха!!! Пардон. Просто только вчера обсуждал программу (на Блэкбоксе) для обработки данных по массе нейтрино, где маса каких-то двойных-тройных-... циклов. И как студент всё пытался по-началу делать куски на Матлабе. |
Автор: | ScrollLock [ Среда, 26 Январь, 2011 09:45 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для вывода графиков |
Info21 писал(а): И как студент всё пытался по-началу делать куски на Матлабе. Ну так ведь использование преимуществ векторизации требует навыка "думать векторно", и тогда очень многие одинарные и двойные суммы можно "свернуть". Кстати, какие принципиальные удобства по сравнению с MATLAB в BlackBox студент ощутил? |
Автор: | bohdant [ Среда, 26 Январь, 2011 13:01 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
ScrollLock писал(а): У MATLAB и Octave есть ещё одно удобство, не связанное с интерфейсом: они изначально "заточены" под работу с матрицами и массивами, в них много векторизации. Может будет интересно: в Активном Обероне на уровне языка есть поддержка работы с матрицами: (a) Static Mathematical Arrays being declared as array [x] of type,where x must be a constant, (b) Open Mathematical Arrays being declared as array [*] of type, (c) Tensors being declared as array [?] of type, Типы поддерживаемых операций: Array->Array (element-wise operators, transposition) Array X Array-> Scalar Array X Scalar->Array|Scalar X Array->Array Array X Array -> Array (element-wise operators) Другие: A:=B*C;matrix/vector product A:=B**C;tensor product A:=reshape(B,v);reshape operation Следует отметить: Скоро будет завершена 64-битная версия. Идет разработка библиотеки по вычислению в GPU. |
Автор: | Info21 [ Среда, 26 Январь, 2011 13:11 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для вывода графиков |
ScrollLock писал(а): Info21 писал(а): И как студент всё пытался по-началу делать куски на Матлабе. Ну так ведь использование преимуществ векторизации требует навыка "думать векторно", и тогда очень многие одинарные и двойные суммы можно "свернуть". Кстати, какие принципиальные удобства по сравнению с MATLAB в BlackBox студент ощутил?Студент ощутил удобство, когда научился выводить нужный именно ему управляющий интерфейс в маленький наружный модуль. Вы хоть представляете себе, чем у меня голова и без того забита, чтобы еще какой-то совершенно избыточной векторизацией озабачиваться? На кой ляд оно мне нужно? Все пустые завлекалочки с векторизациями и проч. для меня уже давно пройдены. Я лучше тут пальцы поупражняю, чем мозги грузить векторизациями. Оберон/Блэкбокс это *сказка* по своей минималистичной сбалансированности. |
Автор: | Info21 [ Среда, 26 Январь, 2011 13:22 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
bohdant писал(а): Может будет интересно: в Активном Обероне на уровне языка есть поддержка работы с матрицами: Когда эта работа началась, меня попросили дать реалистичный пример вычислительной программы, где было бы много матриц и проч. У меня как раз была такая, полноценная, в себе законченная, не маленькая и не слишком большая. И вот в ней во всей всего-то нашлось где-то три места (ну, может, четыре), где какие-то циклы свернулись с помощью этих средст, причем без существенного эффекта для понимабельности -- они и так были вполне прозрачные. Помню, Феликс разочарован был. Это просто была идея из общих соображений (после Дня Оберона в ЦЕРНе в 2004) удовлетворить нишу научно-инженерных расчетов, и раз человек был на это посажен, то так оно и продолжалось. Штука в том, что векторы-матрицы в большом количестве -- в некоторой существенной части следствие невозможности свободно использовать динамические структуры. То есть в языках типа фортрана, где всё "прибивается" к массивам. Если это ограничение убрать, то и проблема уходит. Опять же, забивание в язык сложной вещи, которую можно отрядить в библиотеки, -- это большая грабля на будущее. |
Автор: | ScrollLock [ Среда, 26 Январь, 2011 16:45 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
bohdant писал(а): Может будет интересно: в Активном Обероне на уровне языка есть поддержка работы с матрицами: Спасибо, надо будет посмотреть, как оно работает. Info21 писал(а): И вот в ней во всей всего-то нашлось где-то три места (ну, может, четыре), где какие-то циклы свернулись с помощью этих средст, причем без существенного эффекта для понимабельности -- они и так были вполне прозрачные. Помню, Феликс разочарован был. У меня другой опыт: удавалось свернуть очень многое, как правило, без серьёзного ущерба понятности. Но, правда, моя задача изначально связана с массивами точек - (гипер)поверхностями термодинамических потенциалов. Удавалось свернуть довольно "навороченные" формулы вроде уравнений NRTL и UNIQUAC (там есть вложенные суммы). Из алгоритмов сделал без единого цикла даже поиск "соседей" треугольника на триангуляции. Info21 писал(а): Вы хоть представляете себе, чем у меня голова и без того забита, чтобы еще какой-то совершенно избыточной векторизацией озабачиваться? Думаю, что она не избыточна в ряде случаев. Просто сначала этот приём программирования сильно непривычен. А вообще для интерпретируемого языка это в высшей степени правильный способ снизить потери на интерпретацию. Если освоиться, то векторизация почти столь же понятна, как и традиционные способы программирования. Info21 писал(а): Студент ощутил удобство, когда научился выводить нужный именно ему управляющий интерфейс в маленький наружный модуль. В MATLAB есть средства инкапсуляции в виде объектно-ориентированного программирования и пространств имён. Да и синтаксис там уже несколько лет назад стал посимпатичнее. |
Автор: | Info21 [ Среда, 26 Январь, 2011 17:04 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
ScrollLock писал(а): для интерпретируемого языка это в высшей степени правильный способ снизить потери на интерпретацию. Ну, это называется делать через одно место.ScrollLock писал(а): В MATLAB есть средства инкапсуляции в виде объектно-ориентированного программирования и пространств имён. Да и синтаксис там уже несколько лет назад стал посимпатичнее. Да ладно, инкапсуляция. Всё это заплатки на хреновое основание.
|
Автор: | Рыжий [ Пятница, 28 Январь, 2011 19:10 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
Надо сгрузить все в АПЛ и не париться. Какой там матлаб. |
Автор: | ScrollLock [ Суббота, 29 Январь, 2011 01:14 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
Рыжий писал(а): Надо сгрузить все в АПЛ и не париться. Какой там матлаб. Посмотрел ради интереса - его синтаксис слишком уж лаконичен и суров)) Да и с библиотеками наверное в APL похуже. Info21 писал(а): Да ладно, инкапсуляция. Всё это заплатки на хреновое основание. Думаю, что он не хреновое, а просто другое, для более узкоспециализированных целей по сравнению с Оберонами, со своими сильными и слабыми сторонами. И ООП в нём изначально выглядело действительно как "костыль", но и не слишком уж аляповатый. |
Автор: | Info21 [ Суббота, 29 Январь, 2011 03:29 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
ScrollLock писал(а): Info21 писал(а): Да ладно, инкапсуляция. Всё это заплатки на хреновое основание. Думаю, что он не хреновое, а просто другое, для более узкоспециализированных целей ...И закон-то старый. Лисп потребовал компилятор еще когда. А раз насыщаются одинаково, то остается единственная выделенная точка -- железо, которое императивное ... и через несколько шагов приходим к Оберону. |
Автор: | ScrollLock [ Суббота, 29 Январь, 2011 12:57 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
Info21 писал(а): А раз насыщаются одинаково, то остается единственная выделенная точка -- железо, которое императивное ... и через несколько шагов приходим к Оберону. Это не совсем очевидно: тому же железу неведомо структурное программирование, процедуры, массивы, отчасти типы данных. И какую надстройку над ним использовать, вполне может определяться задачей. Если уж идти от железа - то скорее придём к Си, чем к Оберону, это более низкоуровневый язык. |
Автор: | Info21 [ Суббота, 29 Январь, 2011 14:18 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
Можно я не буду отвечать. |
Автор: | Валерий Лаптев [ Воскресенье, 30 Январь, 2011 11:40 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
ScrollLock писал(а): Рыжий писал(а): Надо сгрузить все в АПЛ и не париться. Какой там матлаб. Посмотрел ради интереса - его синтаксис слишком уж лаконичен и суров)) Да и с библиотеками наверное в APL похуже. Там практически все операции - в составе языка. Заточено именно под векторы и матрицы |
Автор: | QWERTYProgrammer [ Воскресенье, 30 Январь, 2011 18:24 ] |
Заголовок сообщения: | Re: Исп-е Octave/Matlab для векторно-матричных вычислений |
bohdant писал(а): ScrollLock писал(а): У MATLAB и Octave есть ещё одно удобство, не связанное с интерфейсом: они изначально "заточены" под работу с матрицами и массивами, в них много векторизации. Может будет интересно: в Активном Обероне на уровне языка есть поддержка работы с матрицами: Вроде бы то же самое может и Zonnon: http://www.zonnon.ethz.ch/archive/znnLanguageReportv04y090606draft.pdf |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |