Интернет-магазин My-shop.ru
Акции   
Персональный раздел v
   Доставка    Оплата    Скидки    Форум    Помощь
для Москвы  +7 (495) 638-53-38
бесплатно для РФ  +7 (800) 100-53-38
 
0
• 
Книги (690923)
• 
Компьютерная литература (3947)
• 
Общие вопросы, справочная литература (539)
• 
Общая информатика. Теория информатики (214)

• 
Книги (690923)
• 
Научная и научно-популярная литература (68669)
• 
Математика (1401)
• 
Научная, учебная литература для специалистов (1000)



Параллельные алгоритмы. Разработка и реализация. Учебное пособие

Демьянович Ю.К. (найти все товары), Бурова И.Г., Евдокимова Т.О., Иванцова О.Н., Мирошниченко И. Д.

Заглянуть внутрь (несколько страниц в формате PDF)
Параллельные алгоритмы. Разработка и реализация. Учебное пособиеДанный курс лекций посвящен базисным проблемам параллельных вычислений: общей теории распараллеливания, разработке алгоритмов и программ для параллельных систем с общей памятью, способам распараллеливания для систем с распределенной памятью и средствам распараллеливания, предлагаемым компанией Intel. Рассматривается широкий спектр вопросов: от постановки задачи распараллеливания до подходов к распараллеливанию сверхсложных вычислительных задач, от теоретической концепции неограниченного параллелизма до практической реализации вычислений на имеющихся вычислительных системах с параллельными и многоядерными процессорами. Лекции сопровождаются упражнениями для закрепления излагаемого материала.
Предлагаемое учебное пособие предназначено для студентов, аспирантов и специалистов, изучающих методы и алгоритмы распараллеливания вычислений, а также для тех читателей, которые решают сложные задачи на параллельных вычислительных системах.

Издательство: Бином. Лаборатория знаний / Интернет-Университет Информационных Технологий (ИНТУИТ)
Серия: Основы информационных технологий

Рейтинг: - (голосов: 0)
Ваша оценка: 1 2 3 4 5  

дата выпуска: 2014 г. 
язык: русский
количество томов: 1
количество страниц: 344 стр.
переплет: твердый
формат: 60x90/16 (145x215 мм)
стандарт: 16 шт.
возрастная категория: 18+ (нет данных)
код системы скидок: 25
код в My-shop.ru: 1109410

ISBN: 978-5-9963-0496-7


Демьянович Ю.К.автор/составительДемьянович Ю.К., найти все товары
Бурова И.Г.автор/составительБурова И.Г., найти все товары
Евдокимова Т.О.автор/составительЕвдокимова Т.О., найти все товары
Иванцова О.Н.автор/составительИванцова О.Н., найти все товары
Мирошниченко И. Д.автор/составительМирошниченко И. Д., найти все товары


Содержание:

Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Ча с т ь I. Основы распараллеливания
Лекция 1. О постановке задачи распараллеливания. . . . . . . . . . . . . . 17
1.1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2. О некоторых вычислительных задачах. . . . . . . . . . . . . . . . . . . . . . 19
1.3. Численный эксперимент и его целесообразность . . . . . . . . . . . . . . . 21
1.4. Об архитектуре вычислительных систем . . . . . . . . . . . . . . . . . . . . 22
1.5. О понятии “алгоритм”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.6. Параллельная форма алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.7. О концепции неограниченного параллелизма . . . . . . . . . . . . . . . . . 30
1.8. О схеме сдваивания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.9. О вычислении степени на параллельной системе . . . . . . . . . . . . . . . 32
1.10. О взаимоотношении числа данных и высоты . . . . . . . . . . . . . . . . . 33
1.11. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Лекция 2. О некоторых методах линейной алгебры в концепции неограниченного параллелизма . . . . . . . . 35
2.1. Предварительные соглашения . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2. Распараллеливание умножения матрицы на вектор . . . . . . . . . . . . . 36
2.3. Распараллеливание перемножения матриц . . . . . . . . . . . . . . . . . . . 36
2.4. О распараллеливании одного рекуррентного процесса . . . . . . . . . . . 36
2.5. Об LU-разложении . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6. Распараллеливание LU-разложения трехдиагональной матрицы. . . . . 41
2.7. О распараллеливании процесса отыскания обратной матрицы . . . . . . 44
2.8. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Лекция 3. Некоторые сведения из теории графов в связи с распараллеливанием . . 47
3.1. О понятии графа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2. Ориентированный граф . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3. Топологическая сортировка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4. Примеры графов параллельных форм. . . . . . . . . . . . . . . . . . . . . . . 50
3.5. Изоморфизм графов. Операции гомоморфизма . . . . . . . . . . . . . . . . 52
3.6. Построение графов параллельных форм . . . . . . . . . . . . . . . . . . . . . 53
3.7. Направленные графы и параллельные формы . . . . . . . . . . . . . . . . . 55
3.8. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Лекция 4. Функциональные устройства . . . . . . . . . . . . . . . . . . . . . . 58
4.1. Некоторые определения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2. Свойства простых и конвейерных функциональных устройств . . . . . . 60
4.3. О времени реализации алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4. Ускорение при распараллеливании . . . . . . . . . . . . . . . . . . . . . . . . 63
4.5. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Лекция 5. Алгоритмы и вычислительные системы. . . . . . . . . . . . . . . 67
5.1. О соотношении графов алгоритма и вычислительной системы . . . . . . 67
5.2. Базовая вычислительная система . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.3. К построению графа вычислительной системы . . . . . . . . . . . . . . . . 70
5.4. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Лекция 6. Представление и реализация алгоритмов. . . . . . . . . . . . . . 74
6.1. Программы реализации алгоритмов. . . . . . . . . . . . . . . . . . . . . . . . 74
6.2.Матричные представления графов алгоритмов . . . . . . . . . . . . . . . . 79
6.3. Об NP-сложности задачи отыскания графа вычислительной системы
из графа алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.4. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Лекция 7. Параллелизм при обработке информации . . . . . . . . . . . . . 92
7.1. Конвейерные вычисления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.2. Векторные вычислительные машины . . . . . . . . . . . . . . . . . . . . . . . 98
7.3. Систолические массивы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.4. Об архитектуре параллельных суперкомпьютеров . . . . . . . . . . . . . . 111
7.5. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Лекция 8. О технологии программирования Open MP . . . . . . . . . . . . 118
8.1. Трудности перехода от последовательных программ к параллельным 118
8.2. Введение в технологию Open MP . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.3. Директивы Open MP. Описание параллельных областей . . . . . . . . . 123
8.4. Параллельные секции и их вложенность . . . . . . . . . . . . . . . . . . . . 124
8.5. Распределение работы. Программирование на низком уровне. . . . . . . 124
8.6. Выполнение операторов цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.7. Парралелизм независимых фрагментов . . . . . . . . . . . . . . . . . . . . . 126
8.8. Классы переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.9. Критические секции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.10. Другие возможности Open MP . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.11. Привлекательные черты технологии Open MP . . . . . . . . . . . . . . . . 131
8.12. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Лекция 9. О параллельном программировании с использованием стандарта MPI. . . . .. 132
9.1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.2. Элементы идеологии стандарта MPI . . . . . . . . . . . . . . . . . . . . . . . 132
9.3. О реализации разветвлений на параллельной системе . . . . . . . . . . . 135
9.4. О программировании вычислений на параллельной системе. Процедура
MPI_REDUCE. . ..................... 136
9.5. Перечень основных процедур стандарта MPI . . . . . . . . . . . . . . . . . 137
9.6. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Лекция 10. Технология программирования DVM. . . . . . . . . . . . . . . . 143
10.1. Основные принципы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.2. Распредение массивов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
10.3. Выравнивание массивов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.4. Параллельное выполнение циклов. . . . . . . . . . . . . . . . . . . . . . . . . 145
10.5. Отображение задач . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
10.6. Соседние общие данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
10.7. Удаленные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
10.8. Редукционные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
10.9. Пересеченные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
10.10. Пример программы. Отладка. Заключительные замечания . . . . . . . . 150
10.11. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Лекция 11. Программирование на mpC. . . . . . . . . . . . . . . . . . . . . . . 153
11.1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
11.2. Базовые и узловые функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
11.3. Автоматические сети . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
11.4. Статическая сеть . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
11.5. Тип сети. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
11.6. Родитель виртуальной сети. Виртуальный хост-компьютер . . . . . . . . 156
11.7. Синхронизация работы сети . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
11.8. Подсети в языке mpC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
11.9. Управление отображением виртуальных процессоров на реальные
процессы параллельной программы . . . . . . . . . . . . . . . . . . . . . . . . 159
11.10. Учет затрат на передачу данных. . . . . . . . . . . . . . . . . . . . . . . . . . 162
11.11. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Лекция 12. О некоторых других языках програмирования . . . . . . . . . 165
12.1. О языке Occam (“Бритва Оккама”) . . . . . . . . . . . . . . . . . . . . . . . . 165
12.2. О языке CSP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
12.3. О языке Linda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
12.4. Портфель задач . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
12.5. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Ча с т ь II. Параллельные системы с общей памятью
Лекция 13. Вычислительные системы, алгоритмы и программы . . . . . 177
13.1. Вычислительная система . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
13.2. Программа и ее история . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
13.3. Замечания о способе представления программ . . . . . . . . . . . . . . . . 182
13.4. Поиск образца в файле и распараллеливание . . . . . . . . . . . . . . . . . 186
13.5.Мелкомодульная неделимость . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
13.6. Оператор ожидания и синхронизация . . . . . . . . . . . . . . . . . . . . . . 191
13.7. Синхронизация “производитель – потребитель”. . . . . . . . . . . . . . . . 192
13.8. Обзор логики программирования . . . . . . . . . . . . . . . . . . . . . . . . . 193
13.9. Логика программирования при параллельном выполнении . . . . . . . . 195
13.10. Устранение взаимного вмешательства: непересекающиеся
множества переменных. . .............................................................197
13.11. Ослабленные утверждения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
13.12. Глобальные инварианты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
13.13. Задача копирования массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
13.14. Стратегии планирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
13.15. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Лекция 14. Критические секции и барьеры. . . . . . . . . . . . . . . . . . . . 206
14.1. Задача критической секции. Крупномодульная реализация . . . . . . . . 206
14.2. Активные блокировки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
14.3. Протокол “проверить–установить”. . . . . . . . . . . . . . . . . . . . . . . . . 208
14.4. Протокол “проверить–проверить–установить” . . . . . . . . . . . . . . . . . 209
14.5. Реализация оператора await . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
14.6. Алгоритм разрыва узла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
14.7. Алгоритм билета . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
14.8. Справедливое планирование без использования специальных протоколов . . . 216
14.9. Барьерная синхронизация в цикле . . . . . . . . . . . . . . . . . . . . . . . . 219
14.10. Требования к барьеру . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
14.11. Управляющие процессы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
14.12. Построение симметричных барьеров . . . . . . . . . . . . . . . . . . . . . . . 224
14.13. Распараллеливание префиксных вычислений . . . . . . . . . . . . . . . . . 226
14.14. Операции со связанными списками. . . . . . . . . . . . . . . . . . . . . . . . 227
14.15. Итерации Якоби . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
14.16. Замечание о синхронном выполнении . . . . . . . . . . . . . . . . . . . . . . 230
14.17. Умножение матриц. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
14.18. Адаптивная квадратура с портфелем задач. . . . . . . . . . . . . . . . . . . 232
14.19. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Лекция 15. Синхронизация с помощью семафоров. . . . . . . . . . . . . . . 235
15.1. Некоторые определения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
15.2. Взаимное исключение. Барьеры . . . . . . . . . . . . . . . . . . . . . . . . . . 235
15.3. Разделенные двоичные семафоры . . . . . . . . . . . . . . . . . . . . . . . . . 236
15.4. Задача об обедающих философах . . . . . . . . . . . . . . . . . . . . . . . . . 237
15.5. Задача о читателях и писателях как задача исключения. . . . . . . . . . 239
15.6. Использование условной синхронизации . . . . . . . . . . . . . . . . . . . . 242
15.7.Метод передачи эстафеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
15.8. Об упрощении программы и о справедливости стратегий планирования 245
15.9. Задача о распределении ресурсов и общая схема ее решения . . . . . . 247
15.10. Распределение ресурсов методом “кратчайшее задание” . . . . . . . . . . 249
15.11. Некоторые возможности библиотеки Pthreads . . . . . . . . . . . . . . . . . 252
15.12. Программа “производитель–потребитель”, использующая библиотеку
Pthreads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
15.13. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Ча с т ь III. Параллельные системы с распределенной памятью
Лекция 16. Программирование с использованием передачи сообщений 259
16.1. О распределенном программировании . . . . . . . . . . . . . . . . . . . . . . 259
16.2. Асинхронная передача сообщений. . . . . . . . . . . . . . . . . . . . . . . . . 260
16.3. Сортировка, фильтры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
16.4. Клиенты и серверы. Файловые системы . . . . . . . . . . . . . . . . . . . . . 264
16.5. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Лекция 17. Мониторы и условные переменные . . . . . . . . . . . . . . . . . 267
17.1.Мониторы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
17.2. Структура монитора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
17.3. Взаимное исключение в мониторе. . . . . . . . . . . . . . . . . . . . . . . . . 268
17.4. Условные переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
17.5. Способы выполнения операции сигнализации . . . . . . . . . . . . . . . . . 269
17.6. Операции с условными переменными . . . . . . . . . . . . . . . . . . . . . . 272
17.7.Монитор, реализующий кольцевой буфер . . . . . . . . . . . . . . . . . . . . 273
17.8. Задача о “читателях” и “писателях” . . . . . . . . . . . . . . . . . . . . . . . 274
17.9. Распределение ресурсов по приоритетам . . . . . . . . . . . . . . . . . . . . 276
17.10. Организация “спящих” процессов . . . . . . . . . . . . . . . . . . . . . . . . . 277
17.11. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Лекция 18. Рандеву и активные мониторы . . . . . . . . . . . . . . . . . . . . 280
18.1. Рандеву . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
18.2. Активные мониторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
18.3. Планирующий сервер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
18.4. Файловые серверы и клиенты. . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
18.5. Обмен значениями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
18.6. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Лекция 19. Операторы взаимодействия и защита. . . . . . . . . . . . . . . . 296
19.1. Синхронная передача сообщений . . . . . . . . . . . . . . . . . . . . . . . . . 296
19.2. Операторы взаимодействия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
19.3. Защищенное взаимодействие . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
19.4. Программа генерации простых чисел. . . . . . . . . . . . . . . . . . . . . . . 302
19.5. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Лекция 20. Удаленный вызов процедур и взаимодействие процессов. . 304
20.1. Удаленный вызов процедур . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
20.2. Вопросы взаимно исключающего доступа и синхронизации (внутри модуля) . . .306
20.3.Модуль сервера времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
20.4. Распределенная файловая система . . . . . . . . . . . . . . . . . . . . . . . . 308
20.5. Фильтр слияния в Remote Procedure Call (RPC) . . . . . . . . . . . . . . . 310
20.6. Обмен значениями в RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
20.7. Операторы ввода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
20.8. Взаимодействие типа “клиент—сервер” . . . . . . . . . . . . . . . . . . . . . 314
20.9. Обмен значениями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
20.10. Объединенная нотация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
20.11. Очередь и кольцевой буфер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
20.12. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Ча с т ь IV. Распараллеливание средствами Intel
Лекция 21. Intel Parallel Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Лекция 22. Особенности реализации технологии распараллеливания
в среде Open MP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
22.1. Директива parallel for и составная квадратурная формула прямоугольников. . . . 328
22.2. Критические секции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
22.3. Директива sections и составная квадратурная формула Симпсона . . . 332
22.4. Синхронизация работы потоков . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Предметный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

Заглянуть внутрь (несколько страниц в формате PDF)
392 руб.
в наличии*
ориентировочная дата отгрузки: 07.12.2016 (Ср.)
шт.
отложить

|