Инструкция по эксплуатации «готовых» лабораторных работ по архитектуре ВМ и ВС.
EULA
Данное программное обеспечение является свободно распространяемым и поставляется As Is (как есть, т.е.), т.е. автор не имеет с этого ничего кроме некоторых убытков. Поэтому НИКАКИХ претензий по поводу программ не принимается (только просьбы и пожелания). Программы запускаются вами только на свой страх и риск. Кроме того, с программами поставляются уже построенные графики и таблицы для лабораторных работ. Убедительная просьба не использовать их в качестве своих. Построение графиков и получение данных от программы производиться очень просто. Поэтому, пожалуйста, не ленитесь взять свои данные. Тем более что они могут очень сильно различаться.
Общие вопросы.
Все программы после своего запуска создают файлы с расширением “csv”. Это расширение характеризует файлы, в которых строки таблицы разделены переводом строки, а столбцы разделены точкой с запятой. Эти файлы легко открываются MSExcel, в котором достаточно удобно можно построить графики и диаграммы. Кроме того, все программы (скомпилированные) ориентированы на мой личный компьютер (с точки зрения использования памяти и процессорного времени см. раздел «Технические характеристики»). Поэтому, если у вас возникают ошибки при работе программы, или она на ваш взгляд слишком медленно работает, советую вам ее перекомпилировать (не забудьте использовать полную оптимизацию при компиляции).
Local
Эта программа предназначена для измерения числа доступных программе регистров. Она замеряет время доступа к переменной с большой точностью(10 000 000 итераций) и записывает его в файл «local.csv» в формате
Количество переменных |
Время, затраченное на 10 000 000 итераций (мс) |
Соответственно, если вычислять среднее время доступа к одной переменной, нужно время разделить на число переменных и на 10 000 000. График являет собой почти прямую линию с одним скачком на том случае, когда все переменные не помещаются в регистры. Использует целочисленные переменные.
Memory
Эта программа предназначена для измерения максимально доступного программе кэша. Она работает таким образом: пытается загнать весь массив размера n в кэш, и потом 1000 раз проходит по его переменным, замеряя время. И выводит их в файл «memory.csv». Если построить график, то он примет вид некоей кривой с явно выраженными (в Линуксе) и неявно выраженными (в Windows’е) скачками. Формат вывода:
Размер блока памяти (в байтах) |
Время, затраченное на 1000 проходов (мс) |
Использует массив unsigned char’ов (т.к. их размер - 1байт).
Matrix
Эта программа предназначена для определения способа наилучшего использования иерархической структуры памяти. Она умножает квадратные матрицы, используя три варианта:
1. Стандартное умножение матриц – строка М1 на столбец М2
2. Умножение транспонированной М1 на М2 – столбец М1 на столбец М2
3. Умножение М1 на транспонированную М2 – строка М1 на строку М2
Третий результат дает наилучшее время, т.к. кэш записывает линейные области памяти(строки) в одну ячейку.
Формат вывода:
Размер матрицы(NxN) |
Время для A*B |
Время для At*B |
Время для A*Bt |
Технические характеристики компьютера
Технические характеристики компьютера, на котором производились замеры.
Processor |
Intel Celeron |
CPU Clock |
1100Mhz |
Bus Clock |
100Mhz |
Memory |
SDRAM 256 Mb 133MHZ |
L1 cache |
16K |
L2 cache |
256K |
Особенности компиляции
При компиляции windows-исполняемых программ использовался компилятор, входящий в комплект Borland C++ Builder 5.0 с отключением всевозможных функций отладки и включением полной оптимизации на скорость.
При компиляции linux-исполняемых программ использовался компилятор gcc (стандартный из Redhat 7.3 Valhalla), с ключом оптимизации –О3.
Slayder[X3]
slayder.x3@land.ru
www.pm22.h1.ru
Савлюк Вячеслав.
Группа ПМ-22
НГТУ, Новосибирск, РФ
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.