0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
1

Производительность Matlab 6.5 и Matlab r2013b

07.06.2013, 15:44. Показов 5990. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть два ноутбука:
1.Intel Celeron Dual-Core T3100 1.90GHz 2ГБ ОЗУ WinXP (32bit) - Матлаб 6.5
2.Intel Core i5 3230M 2.6GHz 6ГБ ОЗУ Win8 (64bit) - Матлаб r2013а

На обеих ноутах выполняю две одинаковые задачи:
1. Обучаю нейронную сеть
2. Прогоняю ее работу 20000 с разными входными данными (вложенный цикл 1000 раз по 20)

Замеряю время обработки. Результаты для двух ноутбуков:
1. Скорость обучения ниже в 4 раза. Скорость выполнения циклов в 20 раз быстрее!!!
2. Скорость обучения быстрее, но тот же цикл выполняет несколько часов!!!!

Может где-то в настройках пошукать или на второй ноут старый матлаб установить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2013, 15:44
Ответы с готовыми решениями:

можно ли в Matlab создать библиотеку для С++ и использовать ее без вызова Matlab?
Возможно ли с помощью команды deploytool или какой-то другой команды создать библиотеку .dll...

Parse error at case matlab: usage might be invalid matlab syntax
Сразу говорю: В матлабе работаю ровно месяц. В общем, делаю форму, для вывода графика в axix....

Почему программа написанная в MATLAB 5.2 не работает в MATLAB 7.5 ?
Здравствуйте уважаемые форумчане. У меня возникла проблема с программой, написанной в MATLAB 5.2....

Открытие файла Matlab 7.14 в Matlab 7.12
доброго всем вечера.такая вот проблемка.создал файл в матлабе,но в версии 7.14 немного заргуженнее...

18
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
07.06.2013, 18:33  [ТС] 2
Вот что показывает Profiler. Superpower (на первом месте) - это программа которая 100 раз вызывает expre (на втором месте), внутри expre 1200 раз симулируется работа сети network.sim (на третьем месте). А вот что там дальше - CodeHints - выполняется 54 минуты???
Да может программа и не оптимальна, но на старом ноутбуке и на старом матлабе она выполняется намного быстрее!!! на несколько часов (если запустить цикл не 100 раз а 1000, как в исходном примере)
Помогите пожалуйста, уж очень много времени уходит просто так!!!
Миниатюры
Производительность Matlab 6.5 и Matlab r2013b  
0
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
07.06.2013, 19:46  [ТС] 3
Hints переводится как "Подскази". Это походу новый матлаб целый час убил на формирование подсказок?
Ну и по остальным пунктам вопрос открыт?
Миниатюры
Производительность Matlab 6.5 и Matlab r2013b  
0
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
07.06.2013, 20:53  [ТС] 4
Вкратце - построена ИНС, которая распознает дефекты в сигналах. Циклы набирают статистику по вероятности ошибки ИНС. Вот коды программ:
Superpower.m
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
veroyatnoct(10,100)=0; %Вероятность ошибки
Ekk=100; %Количество экспериментов
for ggg=1:Ekk
    a=0.71; %Порог, ниже которого считается за ошибку
    expre;
    for ttt=1:10
        oshibka=0;
        p=0;
        for jj=i:ii
            for j=1:Ek
                p=p+1;
                if aaa(p)<a; oshibka=oshibka+1; end;
            end;
        end;
        veroyatnoct(ttt,ggg)=(oshibka/length(aaa))*100;
        a=a+0.01;
    end;
end;
expre.m
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
aaa(1,1400)=0; %Выход ИНС
inp(301,1)=0; %Текущий вход ИНС
Ek=1000; %Количество проходов
p=0;
i=15;
ii=26;
for jj=i:ii
    for j=1:Ek
        p=p+1;
        inp=awgn(inputs(:,jj),50);
        aaa(p)=sim(network1,inp);
    end;
end;
Но мне кажется дело не вних , а в настройках Матлаб 2013. На первом ноутбуке выполняется ровно за 2 часа, на втором за 20!!! Подскажите как увеличить скорость работы?
0
318 / 257 / 30
Регистрация: 30.03.2013
Сообщений: 755
07.06.2013, 23:06 5
Вариант 1
На ноутбуке

Intel Core i5 3230M 2.6GHz 6ГБ ОЗУ Win8 (64bit) - Матлаб r2013а

вирусы, они и тормозят

Вариант 2

Нужно поставить на Intel Core i5 3230M 2.6GHz 6ГБ ОЗУ Win8 (64bit) операционную систему Linux ( например Ubuntu)

и станет работать гораздо быстрее чем под Win
0
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
07.06.2013, 23:51  [ТС] 6
sergsh, нет ну что Вы, какие вирусы. Чай не школьники или домохозяки, чтоб незнать как компьютер от вирусов защитить. Тем более я не говорил, что он тормозит. Наоборот обучение сети идет намного быстрее (а это я считаю показатель, т.к. первый ноутбук при обучении залипает на несколько часов и лучше его не трогать, а на втором во время обучения можно еще и поиграть во что-нибудь). Но вот циклы он выполняет медленнее во много раз. Ubuntu (и другие проявления Линукса) неперевариваю на клеточном уровне. 1,5 года работал на ней так и не привык.
Мне кажется что дело не в компе, а в версии Матлаб, поэтому так назвал тему. Как найду дистрибутив 6.5, установлю на второй ноут и попробую. Но все же хотелось послушать того, кто реально понимает о чем идет речь, а не тыкает пальцем в небо.

Вопрос открыт!
0
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
12.06.2013, 14:25  [ТС] 7
Вопрос открыт! Матлаб 6.5 не ставится на Вин8.
0
153 / 145 / 2
Регистрация: 08.04.2010
Сообщений: 1,010
12.06.2013, 23:25 8
Цитата Сообщение от GMSD Посмотреть сообщение
Матлаб 6.5 не ставится на Вин8.
Странно. У меня 6.1 встала без проблем
0
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
13.06.2013, 10:06  [ТС] 9
я наверно не правильно выразился. На 64 bit. Просто в контексте темы (в первом сообщении) Вин8 подразумевает ноутбук №2.
0
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
16.06.2013, 11:17  [ТС] 10
Вопрос актуален!
0
153 / 145 / 2
Регистрация: 08.04.2010
Сообщений: 1,010
17.06.2013, 12:37 11

Не по теме:


GMSD, я тоже заинтересован )
скрипт с 8ю вложенными циклами считается по часу и более...
есть вариант использовать только матричные операции - как известно, матлаб справляется с ними лучше, но пока не знаю как это сделать

0
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
17.06.2013, 18:28  [ТС] 12
incognito,
я тут наткнулся на команду parfor - цикл, который выполняется паралельно, но если каждый проход не зависит друг от друга - впринципе он должен подходить для набивания статистики, как в моем случае.
НО - тут вопрос не в этом, программа работает быстро на старом ноутбуке, но на нем долго обучается ИНС, для чего был преобретен новый ноутбук, на котором сеть обучаетс намного быстрей, но вот циклы - в 20 раз дольше. Я думаю, что всетаки это матлаб.

Подскажите пожалуйста как в Матлабе 6.5 запустить Profiler???
0
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
17.06.2013, 21:10 13
Matlab M
1
2
3
profile on
% текст программы
profile viewer
2
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
02.07.2013, 16:51  [ТС] 14
Вопрос актуален!
Я сделал на обоих ноутбуках следующее:
Matlab M
1
2
3
x=(0.01:0.01:1);
y=sin(x);
nntool;
В качестве inputs установил x в качестве targets - y.
Параметры сети:
Network type - feed-forward backprop
Training function - Trainbr
Number of layers - 2
Number of neurons - 10|1
Transfer function - logsig|pureline
Далее обучил и экспортировал сеть network1 в рабочую область
Далее выполнил программу (совершенно бесполезную):
Matlab M
1
2
3
4
5
6
7
8
profile on;
a(1:length(y))=0;
for i=1:length(y)
    a=awgn(x,50);
    a=sim(network1,a);
    n(i)=a(i);
end;
profile viewer;
Результаты времени выполнения:
Ноутбук 1: 0,463s
Ноутбук 2: 6,54s
т.е. в 15 раз медленнее.
Profile показал что на обоих ноутах большее время (90%) тратится на команду network.sim
Файл sim.m находится в папке \toolbox\nnet\nnet\@network\ и для
Matlab 6.5 в нем 324 строчки команд
Matlab r2013a в нем 720 строчек команд, т.е. разработчики усложнили процесс симуляции сети так, что он теперь выполняется в 15 раз дольше?
Прошу высказать мнение по этому поводу. Какую тогда версию Матлаб установить на Вин8 64bit, что бы он не был черепахой?
0
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
12.08.2013, 09:39  [ТС] 15
Вопрос актуален!
0
20 / 20 / 9
Регистрация: 26.07.2013
Сообщений: 51
12.08.2013, 14:47 16
Как самое простое...
Обучать на одном ноуте, а тестить на втором.
Для матлаба нет ничего убийственнее, чем использование вложенных циклов.
0
0 / 0 / 0
Регистрация: 14.08.2009
Сообщений: 22
12.08.2013, 15:49  [ТС] 17
Так и делаю, но хотелось бы докопаться до истины)))
Так что, вопрос актуален!
0
20 / 20 / 9
Регистрация: 26.07.2013
Сообщений: 51
12.08.2013, 20:33 18
Как понимаю основная затырка по скорости именно в этой строке:
Цитата Сообщение от GMSD Посмотреть сообщение
aaa(p)=sim(network1,inp);
?

Основное время работы на новом матлабе (из второго скрина) уходит на выделение памяти под пустой массив ячеек.
В хэлпе (сам я никогда не пользовался симулинком по нейросетям) по функции sim, как я понял, можно использовать не итеративный принцип вызова этой функции, а один раз "матричный", сформировав входные данные в виде массива ячеек, в каждой из которых будет лежать матрица:
Цитата Сообщение от GMSD Посмотреть сообщение
inp=awgn(inputs(:,jj),50);
Этим Вы уберёте внутренний цикл. На предмет "пошукать" настройки - вряд ли Вам кто-то здесь подскажет. Видимо, это особенности новых версий матлаба.
0
153 / 145 / 2
Регистрация: 08.04.2010
Сообщений: 1,010
18.08.2013, 16:21 19
Цитата Сообщение от illi2 Посмотреть сообщение
Этим Вы уберёте внутренний цикл.
illi2, а если таких циклов 3 и боле?
Например, в моей функции 3 переменные и каждую из них надо прогнать через диапазон...
0
18.08.2013, 16:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.08.2013, 16:21
Помогаю со студенческими работами здесь

Matlab
Ребят, у кого-нибудь есть файл загрузочный Matlab 2016 и выше.? Правила форума: 5.3. Запрещено...

Matlab и C++
Друзья, помогите, пожалуйста. имеется код на Си, нужно его перевести в код Matlab. Как это...

GO TO в MatLab
Всем привет! В создании программы понадобилось использовать возможность go to, которой нет в...

MatLab #2
Помогите пожалуйста: Найти все четные элементы вектора (любого) и сложить их. Заранее спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru