Лабораторная 3
Лабораторная работа №3 по курсу ПОД
Программирование Tesla
GPU Tesla M2070
Number of processor cores: 448
Processor core clock: 1.15 GHz
Voltage: 887.5 mV to 975 mV
Package size: 42.5 mm × 42.5 mm 1981-pin ball grid array (BGA)
Memory
Memory clock: 1.50 GHz
Interface: 384-bit
6GB
24 pieces 64M × 32 GDDR5 136-pin BGA, SDRAM
- NVCC – компилятор для CUDA
Основными опциями команды nvcc являются:
ü --use_fast_math - заменить все вызовы стандартных математических функций на их быстрые (но менее точные) аналоги
ü -o <outputFileName> - задать имя выходного файла
- CUDA файлы обычно носят расширение .cu
- Пример компиляция nvcc -o myprog.cu myprog
Общие правила по оформлению программ
Программа
- должна выполняться параллельно
- должна распределять память
- должна использовать векторные операции
Программа должна делать проверки на ошибки:
- Наличие аппаратной поддержки CUDA
- Открылся ли файл исходных данных
- Правилен ли формат данных?
Программа должна быть скомпилирована с опцией Release и запускаться на Windows 7, CUDA Toolkit 6.5
Программа должна быть скомпилирована CUDA, OpenCl, OpenACC
Программа должна компилироваться, для этого должен быть приложен vcproj для VS2012, VS2010, либо makefile + .bat
Варианты заданий (* отмечены задачи повышенной сложности)
- Сортировка массива за O(N)
- Решение системы уравнений методом Гауса
- Разложение матрицы LU
- Найти корень уравнения
- Записать метод прогонки
- Задать массив чисел от 1 до 100000 и инвертировать его
- Реализовать явную разностную схему
- Решение уравнения с разностной схемой второго порядка
- Найти простые множители натурального числа n
- Дано натуральное число N. Найти все меньшие n совершенные числа (числа, равные сумме всех своих делителей, кроме самого числа)
- Дано натуральное число N. Найти все меньшие n числа Мерсена (число называется числом Мерсена, если оно может быть представлено в виде 2р-1, где р – простое число)
- Дано натуральное число N. Найти все меньшие n простые числа-близнецы, т.е. между которыми находится только одно составное число.
- Найти все трехзначные числа Армстронга - сумма кубов цифр которых равна самому числу. Например: 153=13+53+33
- Перемножить две матрицы 100 значных чисел.
- Дано натуральное число N. Проверить, является ли оно степенью числа 2.
- Продолжите последовательность: 24, 81, 63, 26, 41, 28 ...
- Вычислить функцию Аккермана
- Вычислить
- Найти количество различных элементов заданного массива
- Назовём магическим квадратом матрицу размера NxN, которая заполнена числами 1..N2 таким образом, что суммы чисел на любых вертикалях, горизонталях и диагоналях были равны. Для заданного натурального N подсчитать количество магических квадратов.
- Для натурального числа n найти число, состоящее только из цифр 7 и 0 и делящееся на n.
Литература
1. Боресков А.В., Харламов А.В. Основы работы с технологией CUDA. – Изд-во: ДМК Пресс, 2010, 232 стр
2. Казённов А.М. Основы технологии CUDA // Компьютерные исследования и моделирование 2010 Т. 2 № 3 С. 295–308 7.
Варианты заданий составлены проф. Зайцевым В.Е, проф. Ревизниковым Д.Л. и аспирантом Семеновым С.А.