Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Тапсырмаларды орындау реті



8.2.1 Жоғарғы 8.1.2 тармақтағы есепті орындау реті.

Қосымшаны төменде Б қосымшасында келтірілген листингіге сәйкес құру керек, онда бір процестің критикалық секциялармен орындалатын екі ағын құрылады.

Қосымша 1 Button, 2 ListBox, 1 CheckBox қолданады. Критикалық секцияларды қосқанда қосымшаның соңғы нәтижесі болып глобалды айнымалының 124 мәні болуы керек.

Ағындар басымдылығын (приоритетін) өзгерту мүмкіндігін қарастыру керек. Қосымшаны әртүрлі приоритеттерді орнатып жүктеу керек. Келесі сұрақтарға жауап күтілуде: ағындар басымдылығын өзгерту қосымшаны орындау нәтижесіне қалай әсер етеді?

8.2.2 Жоғарғы 8.1.3 тармақтағы есепті орындау реті.

MatLab қосымшасы есептеулерді бір уақытта бірнеше ағындарда орындауға мүмкіндік береді. Бірнеше ағындарда қосу үшін келесі жұмыстарды орындау қажет: File > Preferences > General > Multithreading таңдап ағындар санын таңдау.

Мысал: екі ағынды қолданып екі матрицаны көбейту. Егер жүйеде екі СPU-дан жоғары болса, онда ағындар санын азайтуға болады. Ағындар санын анықтайтын айнымалы numThreads.

А және В матрицасының элементтерінің мәні кездейсоқ сандар генераторымен беріледі.

maxNumCompThreads(N) функциясы есептеуіш ағындардың максимал санын N орнатады

N = maxNumCompThreads есептеуіш ағындардың болып тұрған максимал санын N береді.

Төменде матрицаны құру және кейбір көрсеткіштері көрсетілген.

Командалық жолда терілетіндер:

numThreads=2; % Number of threads to test

dataSize=500; % Data size to test

A=rand(dataSize,dataSize); % Random square matrix

B=rand(dataSize,dataSize); % Random square matrix

Есептеуіш ағындардың максимал саны 1 және операцияны орындау уақыты орнатылады.

oldstate = maxNumCompThreads(1);

C=A*B; % Do not perform timing comparison with the first run

tic;

C=A*B;

time1=toc;

fprintf('Time for 1 thread = %3.3f sec\n', time1);

Time for 1 thread = 0.074 sec

Матрицалар бір ағынды қолданып көбейтілді және орындалу уақыты анықталды.

Енді есептеуіш ағынның numThreads-ке тең саны және орындалу уақыты орнатылады

maxNumCompThreads(numThreads);

tic;

C=A*B;

timeN=toc;

fprintf('Time for %d threads = %3.3f sec\n', numThreads, timeN);

Time for 2 threads = 0.040 sec

Программада көрінгендей орындалу уақыты жуықтап екі есеге азайды.

Excel қосымшасы офистік программалардың арасында ерекше орыналады. Matlab пакетіне жақын, өйткені Excel-де құрылымдарды кесте/матрица түрінде іске асыруға мүмкіндік бар. Excel және Matlab мүмкіндіктерін біріктіруге болады. Оны Matlab құрамына кіретін автоматтандыру серверінің «надстройки» Spreadsheet Link EX көмегімен орындайды. Бұл Excel мәліметтерін Matlab жұмыс кеңістігіне импорттауға немесе керісінше экспорттауға мүмкіндік береді.

М матрицасын Excel - filename – файлына жазу үшін келесі функциялар қолданылады:

xlswrite(filename, M)

xlswrite(filename, M, sheet)

xlswrite(filename, M, range)

xlswrite(filename, M, sheet, range)

Файл аты бірлік тырнақшаға жазылады.

Excel-файлынан М матрицасы үшін келесі қолданылады:

num = xlsread(filename)

num = xlsread(filename, -1)

num = xlsread(filename, sheet)

num = xlsread(filename, 'range')

num = xlsread(filename, sheet, 'range')

num = xlsread(filename, sheet, 'range', 'basic')





Дата публикования: 2015-10-09; Прочитано: 272 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...