Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров тема диссертации и автореферата по ВАК РФ 05.13.05, кандидат технических наук Козловский, Александр Львович
- Специальность ВАК РФ05.13.05
- Количество страниц 163
Оглавление диссертации кандидат технических наук Козловский, Александр Львович
Введение.
Глава 1. Обзор методов оптимизации и формулировка задачи исследований.
1.1 Обзор существующих технологий виртуализации серверной и коммуникационной инфраструктуры.
1.2 Обзор моделей распределения ресурсов для решения задач планирования.
Выводы по 1 главе.
Глава 2. Математические модели оптимизации загрузки серверов.
2.1. Модели статического распределения серверов.
2.2. Взаимосвязь загрузки серверов с их надежностными показателями'.
2.3 Зависимость работы электронных средств от температуры.
2.4 Математические модели тепловых процессов электро-радиоизделий.
2.5 Оценка вычислительной сложности задачи распределения серверов.
2.6 Оценка значения глобального экстремума оптимизируемой функции загрузки серверов.
Выводы по 2 главе.
Глава 3. Реализация метода оптимизации загрузки серверов.
3.1 Алгоритмы распределения ресурсов.
3.2 Алгоритм распределения ресурсов виртуализованного кластера
3.3 Оценка производительности аппаратной и программной частей системы.
Выводы по 3 главе.
Глава 4. Экспериментальные исследования и внедрение разработанных методов оптимизации загрузки серверов.
4.1 Тестовая задача № 1.
4.2 Тестовая задача №2.
4.3 Задача №3.
Выводы по 4 главе.
Рекомендованный список диссертаций по специальности «Элементы и устройства вычислительной техники и систем управления», 05.13.05 шифр ВАК
Математические модели и методы повышения эффективности функционирования кластера компьютеров в центрах обработки данных2004 год, кандидат физико-математических наук Протасов, Станислав Станиславович
Разработка методики повышения эффективности использования вычислительных ресурсов при применении технологии виртуальных машин2005 год, кандидат технических наук Рахман, Павел Азизурович
Математическое моделирование средств управления ресурсами и данными в распределенных и виртуализованных средах2007 год, доктор физико-математических наук Тормасов, Александр Геннадьевич
Система управления специализированными виртуальными инструментами с механизмами оптимального распределения вычислительных ресурсов2009 год, кандидат технических наук Первин, Артем Юрьевич
Исследование и организация эффективных вычислений в параллельных системах баз данных на основе сетей ЭВМ2001 год, кандидат технических наук Маликов, Андрей Валерьевич
Введение диссертации (часть автореферата) на тему «Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров»
Актуальность темы. На сегодняшний день виртуализация серверной инфраструктуры является одной из основных тенденций развития отрасли информационных и коммуникационных технологий. Многие ведущие мировые производители программного обеспечения выпускают на рынок соответствующие продукты. Столь широкое внедрение технологий виртуализации связано с тем, что в последнее время был совершен большой технологический прорыв в области виртуализации операционных систем, открывший огромные возможности и перспективы. Под виртуализацией операционных систем понимают процесс создания на физическом сервере или вычислительном кластере так называемой виртуальной машины, в которой устанавливается своя собственная операционная система. Виртуальных машин на одной физической платформе может быть множество, при этом каждая виртуальная машина имеет свои собственные виртуальные аппаратные компоненты: память, процессор, жесткий диск, сетевые а71аптеры. Эти ресурсы резервируются виртуальной машиной за счет физических ресурсов аппаратного обеспечения сервера или кластера. Такая модель организации вычислительных систем впервые появилась еще в 70-х годах прошлого века в мэйнфреймах корпорации IBM System 360/370, когда требовалось сохранить предыдущие версии экземпляров операционных систем.[2] Но лишь относительно недавно эта технология стала широко доступна для современных серверных систем.
В связи с увеличением вычислительной сложности задач управления, решаемых с помощью виртуализованных кластеров, растет потребность в сбалансированном распределении вычислительных мощностей аппаратного обеспечения для работы различных приложений. Следовательно, необходима разработка моделей распределения ресурсов при виртуализации серверной и коммуникационной инфраструктуры локальной вычислительной сети.
Объектом исследований являются: унаследованные и создаваемые серверные парки, состоящие из множества узлов, связанных локальной вычислительной сетью, технология кластерной виртуализации, применяемая для более эффективного использования вычислительных ресурсов.
Предмет исследований: методы, модели, алгоритмы, программно-аппаратные средства, обеспечивающие оптимальное распределение ресурсов вычислительных кластеров, принимая во внимание надежностные характеристики их элементов и стоимость дальнейшей поддержки системы в целом.
Цель и задачи диссертационного исследования.
Целью работы является повышение эффективности использования ресурсов виртуализованных вычислительных кластерных систем, обеспечивающих надежность функционирования и минимизацию стоимости обслуживания в ходе эксплуатации.
Для реализации поставленной цели необходимо решение следующих задач:
1. Системный анализ существующих подходов к решению проблемы повышения эффективности использования вычислительных ресурсов. Анализ существующих моделей распределения ресурсов, используемых в различных областях деятельности.
2. Анализ существующих методик и технологий получения характеристик производительности устройств вычислительной техники, а также требований к вычислительным ресурсам программного обеспечения.
3. Разработка методики реорганизации серверного парка с применением технологии виртуализации для повышения эффективности использования вычислительных ресурсов.
4. Синтез моделей надежности элементов и устройств вычислительной техники, учитывая фактор снижения надежности аппаратного обеспечения при увеличении его загрузки из-за повышения температуры электрорадиоизделий, входящих в состав данной системы.
5. Разработка математических моделей, алгоритмов и методов решения задачи оптимального планирования распределения вычислительных ресурсов.
6. Разработка программной реализации созданных алгоритмов с графическим интерфейсом, которая бы наглядно демонстрировала на основании входных данных схему распределения виртуальных машин внутри физического кластера.
7. Проведение ряда испытаний разработанной методики распределения ресурсов.
Методы исследования.
В работе используются методы математического моделирования, методы оптимизации, математической статистики и теории вероятностей, динамического программирования. При разработке программного комплекса использованы современные методы создания программного обеспечения.
Научная новизна результатов, выносимых на защиту.
При решении задач, поставленных в диссертационной работе, получены следующие новые научные результаты:
1. Разработаны математические модели и алгоритмы распределения ресурсов вычислительных кластеров, которые, в отличие от известных, позволяют генерировать необходимое число различных конфигураций системы, контролируя, в том числе, надежностные характеристики оборудования (тепловой режим работы, наличие систем резервирования и пр.).
2. Предложен новый универсальный подход к оценке планирования ресурсов виртуализованного кластера, а также его программная реализация, отличающиеся от известных тем, что позволяют эффективно планировать распределение вычислительных мощностей как унаследованных, так и новых программно-аппаратных комплексов. Данный метод не имеет ограничений на размер анализируемого комплекса и не зависит от производителя программного или аппаратного обеспечения.
3. Создана методика планирования распределения вычислительных ресурсов, позволяющая динамически определять конфигурацию системы с минимальной стоимостью обслуживания, которая в отличие от традиционной методики, основанной на приближенном подходе, базируется на методах математического моделирования и измерении физических величин.
Практическая значимость результатов работы состоит в том, что предложенные модели, алгоритмы, программные средства и методическое обеспечение позволяют автоматизировать процесс принятия решений о распределении ресурсов виртуализованных вычислительных кластеров и, соответственно, повысить надежность и эффективность использования программно-аппаратного комплекса в целом.
Результаты, выносимые на защиту:
1. Математические модели и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров.
2. Метод оптимального планирования распределения вычислительных ресурсов, позволяющий синтезировать конфигурацию системы с минимальной стоимостью обслуживания и высокими надежностными характеристиками.
3. Методика автоматизированной обработки данных о производительности аппаратных средств и требования к ресурсам приложений, с последующей генерацией необходимого числа вариантов распределения вычислительных ресурсов.
Апробация результатов работы. Основные положения диссертационной работы доложены и обсуждены на Международных научно-практических конференциях «Инфо-2010», (г. Сочи, 2010) и «Инфо-2011» (г. Сочи, 2011), а также на 19-ой Международной научно-технической конференции «Современное телевидение и радиоэлектроника» (г. Москва, 2011).
Публикации. По материалам работы опубликовано 5 научных работ, в том числе 2 работы - в журналах из перечня ВАК. Получено свидетельство об официальной регистрации программы для ЭВМ.
Реализация и внедрение результатов работы.
Основные результаты диссертационной работы внедрены в ФГУП «МКБ Электрон», ООО НПЦ «Квадра», а также в учебный процесс Московского государственного текстильного университета имени А.Н.Косыгина по дисциплине «Теоретические основы автоматизированного управления» в лекционном курсе и при выполнении лабораторных работ.
Похожие диссертационные работы по специальности «Элементы и устройства вычислительной техники и систем управления», 05.13.05 шифр ВАК
Разработка системы запуска ресурсоемких приложений в облачной гетерогенной среде2013 год, кандидат технических наук Е Мьинт Найнг
Математическая модель двуху109ровневого управления ресурсами в операционных системах с закрытыми исходными кодами2006 год, кандидат физико-математических наук Луковников, Иван Васильевич
Математическая модель двухуровневого управления ресурсами в операционных системах с закрытыми исходными кодами2006 год, кандидат физико-математических наук Луковников, Иван Васильевич
Автоматизация управления предприятием в реальном масштабе времени с применением технологий виртуализации2013 год, кандидат наук Сокол, Андрей Андреевич
Модель и алгоритм оценивания загруженности элементов корпоративной информационно-вычислительной системы в управлении промышленным предприятием2013 год, кандидат технических наук Миронов, Вадим Михайлович
Заключение диссертации по теме «Элементы и устройства вычислительной техники и систем управления», Козловский, Александр Львович
Выводы по 4 главе
1. Приводятся результаты решения трех различных задач планирования ресурсов виртуализованного кластера, развертываемого в ходе миграции, полученные с помощью программы ШЭ-са1си1а1;ог. Показано, что колличество используемых серверов в зависимости от задачи может быть снижено после перехода на технологию виртуализации в среднем на 40%.
2. Произведен анализ ИТ инраструктуры предприятий и предложены различные сценарии создания виртуализованных вычислительных кластеров. Предложенные сценарии позволяют существенно снизить простой вычислительных мощностей.
3. Разработанный инструментарий может быть использован рядовыми инженерами для оптимизации распределения ресурсов виртуализованных вычислительных кластеров.
Заключение
В результате выполнения работы:
1. Проведен анализ используемых на практике методов планирования ресурсов виртуализованных кластеров при решении задач управления, выявлено отсутствие целостного универсального подхода.
2. Разработаны математические модели оптимального планирования ресурсов виртуализованного вычислительного кластера, пригодные для применения как для унаследованных аппаратных комплексов, так и для новых систем.
3. Разработан алгоритм и программная реализация предложенных математических моделей, позволяющие получать любое заданное число вариантов распределения ресурсов.
4. Разработана методика применения программного обеспечения для достижения оптимального распределения ресурсов виртуализованного кластера с учетом надежностных характеристик элементов и устройств вычислительной техники, включенных в виртуализованный вычислительный кластер.
5. В процессе внедрения разработанного программного обеспечения и предложенной методики проведено экспериментальное исследование на ряде модельных примеров и реальных производственных задач в областях, используемых, в том числе для систем управления.
Список литературы диссертационного исследования кандидат технических наук Козловский, Александр Львович, 2012 год
1. Борисов В. Ф., Лавренов О. П., Конструирование радиоэлектронных средств. М.: Издательство МАИ, 1996
2. Варфоломеев В. А., Лецкий Э. К., Архитектура и технологии IBM eServer zSeries. М.: Интернет-университет информационных технологий, 2005
3. Васин Н. Н., Основы сетевых технологий на базе коммутаторов и маршрутизаторов. М.: Бином, 2011
4. Гольдин В. В., Журавский В. Г., Исследование тепловых характеристик РЭС средствами математического моделирования. М.: "Радио и связь", 2003
5. Гольдин В. В., Козловский А. Л., Алгоритм решения задачи загрузки виртуализованного кластера. // Оборонная техника. Выпуск 6, 7. М., 2011
6. Гольдин В. В., Козловский А. Л., Математические модели планирования ресурсов вычислительных кластеров. // Материалы научно-практической конференции «Инфо-2010». М., 2010
7. Гольдин В. В., Козловский А. Л., Оптимизация распределения ресурсов кластеризованной вычислительной автоматизированной системы управления с учетом надежности ее функционирования. // Оборонная техника. Выпуск 6, 7. М., 2011
8. Грин Д., Математические методы анализа алгоритмов. М.: Мир, 1987
9. Гультяев А. К., Виртуальные машины. Несколько компьютеров в одном. -СПб.: Питер, 2006
10. Гэри М., Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982
11. Жаднов В. В., Сарафанов А. В. Управление качеством при проектировании теплонагруженных радиоэлектронных средств. М.: "Солон-Пресс", 2004
12. Заводны Д., Шварц Б., MySQL. Оптимизация производительности. М.: Символ-Плюс, 2010
13. Залещанский Б. Д., Чернихов Д. Я. Кластерная технология и живучесть глобальных автоматизированных систем. М.: Финансы и статистика, 2005
14. Зорич В. А., Математический анализ. М.: Наука, 1981
15. Кириенко Д. П., Динамическое программирование. Московские учебно-тренировочные сборы по информатике. М.: МЦНМО, 2007
16. Козловский A. JL, Методы распределения вычислительных ресурсов виртуализованного кластера. // Труды 19-ой Международной научно-технической конференции «Современное телевидение и радиоэлектроника». М., 2011
17. Козловский А. Л., Программа распределения ресурсов виртуализованного кластера. Свидетельство об официальной регистрации программы для ЭВМ № 2011617318 от 20 сентября 2011г.
18. Козловский А. Л., Эффективный алгоритм решения модифицированной задачи о рюкзаке. // Материалы научно-практической конференции «Инфо-2011». М., 2011
19. Кормен Т., Лейзерсон Ч., Алгоритмы: построение и анализ. М.: Вильяме, 2005
20. Кофанов Ю. Н., Увайсов С. У., Моделирование тепловых процессов при проектировании, испытаниях и контроле качества радиоэлектронных средств. М.: МИЭМ, 1998
21. Кудинов А. Н., Сорокин М. К., CRM. Российская практика эффективного бизнеса. -М.: 1С-Паблишинг, 2009
22. Кушнир А. Н., Сборка сервера. Руководство администратора. М.: Эксмо, 2007
23. Ларсон Р., Карбон Ж., Платформа виртуализации Hyper-V. Ресурсы Windows Server 2008. М.: Русская Редакция, 2010
24. Левин М. III., Сафонов А. В., Эвристический алгоритм для многокритериальной блочной задачи о рюкзаке. / Искусственный интеллект и принятие решений. М.: 2009 - № 4
25. Лежнев А. В., Динамическое программирование в экономических задачах. -М: Бином, 2010
26. Лоу С., VMware vSphere 4. Полное руководство. М.: Диалектика, 2010
27. Менаске Д., Алмейда В., Производительность Web-служб. Анализ, оценка и планирование. М.: ДиаСофтЮП, 2003
28. Мюллер С., Соупер М., Модернизация и ремонт серверов. М.: Вильяме, 2009
29. Осипов Д. Н., Delphi. Профессиональное программирование. СПб, Символ-Плюс, 2006
30. Пападимитриу X., Комбинаторная оптимизация. Алгоритмы и сложность. -М.: Мир, 1985
31. Питеркин С. В., Оладов Н. А., Точно вовремя для России. Практика применения ERP-систем. М.: Альпина Паблишер, 2010
32. Польман Н., Кразерс Т., Архитектура брандмауэров для сетей предприятия. М.: Вильяме, 2003
33. Рахман П. А., Концептуальный подход к повышению эффективности использования вычислительных ресурсов корпоративных сетей при применении технологии виртуальных машин / Объединенный научный журнал. М.: Тезарус , 2005. - №2.
34. Рачинский Е. С., Анализ производительности распределенных информационных систем. СПб.: 2010
35. Резников Г. В., Расчет и конструирование систем охлаждения ЭВМ. М.: Радио и связь, 1988
36. Речистов Г. С., Моделирование и оптимизация алгоритмов работы кэшей. М.: Lambert Academic Publishing, 2009
37. Риз Д., Облачные вычисления. СПб.: БХВ-Петербург, 2011
38. Росляков А. В., Виртуальные частные сети. Основы построения и применения. М.: Эко-Трендз, 2006
39. Сафонов В. О., Основы современных операционных систем. М.: Бином, 2011
40. Стахнов А. А., Linux. СПб.: БХВ-Петербург, 2011
41. Стоян Ю. Г., Математические модели и оптимизационные методы геометрического проектирования. Киев: Наукова думка, 1986
42. Топорков В. В., Модели распределенных вычислений. М.: Физматлит, 2004
43. Федухин А. В., Ускоренная оценка надежности типовых функциональных блоков средств вычислительной техники. / Математические машины и системы. -М.: 1998 №1.
44. Фингар П., Dot.Cloud: облачные вычисления бизнес-платформа XXI века. - М.: Аквамариновая Книга, 2011
45. Фихтенгольц Г. М., Основы математического анализа, т.2. М.: Наука, 1968
46. Хедли Дж., Нелинейное и динамическое программирование. М.: Мир, 1967
47. Хританков А. С., Оценка производительности распределенных вычислительных комплексов на основе модели эталонных систем. М.: 2010
48. Чекмарев А. Н., Windows Server 2008. Настольная книга администратора. -СПб.: БХВ-Петербург, 2009
49. Шень А., Программирование: теоремы и задачи. М.: МЦНМО, 2004.
50. Шуремов Е. Л., Чистов Д. В., Информационные системы управления предприятиями. М.: Бухгалтерский учет, 2006
51. Юдин Д. Б., Задачи и методы стохастического программирования. М.: Сов. Радио, 1979
52. Amdahl G. M., Validity of the single processor approach to achieving large scale computing capabilities /Proc. AFIPS Conference. vol. 30, April 1967.
53. American Society of Heating, Refrigerating and Air-Conditioning Engineers, Материалы официального Интернет сайта http://www.ashrae.org/
54. Barrett D., Kipper G., Virtualization and Forensics: A Digital Forensic Investigator's Guide to Virtual Environments. Burlington: Syngress, 2010
55. Buttazzo G. C., Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications. New York: Springer, 2005
56. Frahim J., Santos O., Cisco ASA: All-in-One Firewall, IPS, Anti-X, and VPN Adaptive Security Appliance. Indiana: Cisco Press, 2010
57. Golze A., Sarbiewski M., Optimize Quality for Business Outcomes: A Practical Approach to Software Testing. Indiana: Wiley, 2008
58. Goralski W. J., Juniper and Cisco Routing: Policy and Protocols for Multivendor Networks. Indiana: Wiley, 2002
59. Haletky E., VMware ESX and ESXi in the Enterprise: Planning Deployment of Virtualization Servers. Boston: Prentice Hall, 2011
60. Hess K., Newman A., Practical Virtualization Solutions. Boston: Prentice Hall, 2010
61. Hewlett-Packard Corporation, Материалы официального Интернет сайта http://www.hp.com
62. Kelbley J., Sterling M., Windows Server 2008 Hyper-V: Insiders Guide to Microsoft's Hypervisor. Indiana: Wiley, 2011
63. Kim J. H., Green IT: Technologies and Applications. Berlin: Springer, 2011
64. Liu A. X., Firewall Design and Analysis. Singapore: World Scientific Publishing Company, 2010
65. Microsoft Corporation, Материалы официального Интернет сайта http://www.microsoft.com
66. Morro С. G., Performance factors of RAID systems. Munchen: Lambert Academic Publishing, 2010
67. Pinheiro E., Failure Trends in a Large Disk Drive Population. / 5th USENIX Conference on File and Storage Technologies, 2007
68. Poniatowski M., Foundation of Green IT. Boston: Prentice Hall, 2009
69. Roebuck K., Virtualization technology. New York: Emereo Pty Ltd, 2011
70. Sathaye A., Ramani S., Availability Models in Practice. 2006
71. Standard Performance Evaluation Corporation, Материалы официального Интернет сайта http://www.spec.org
72. Symantec Corporation, Опрос по виртуализации и эволюции в сторону облаков. 2011
73. Tadros L., Trefethen S., TestComplete Made Easy. California: Falafel Software Inc, 2011
74. VMware, Inc, Материалы официального Интернет сайта http://www.wmware.com
75. Wolf С., Halter Е. М., Virtualization: From Desktop to the Enterprise. New York: A-Press, 2005
76. Yan Y., Zhang X., An Effective Performance Prediction Model for Parallel Computing on Non-dedicated Heterogeneous Networks of Workstations / Parallel and Distributed Computing. 1996. - vol. 38
77. Текст исходного кода программы RD-calculator1. Unit Matrixbyte;interfacetype
78. MatrixPtr = AMatrixRec; MatrixRec = record MatrixRow : integer; MatrixCol : integer; MatrixArray : pointer; end;
79. MatrixElement = longint; PMatrixElement = AMatrixElement; (* DDV Функция сохраняет матрицу в текстовый файл *) function SaveMatrix(MPtr : MatrixPtr; namefile: string) : string;
80. DDV Функция загружает матрицу из текстового файла *) function LoadMatrix(Var MPtr : MatrixPtr; namefile: string) : boolean;
81. Функция возвращает целочисленную степень *) function IntPower(X,n : integer) : integer;
82. Функция создает квадратную матрицу *) function CreateSquareMatrix(Size : integer) : MatrixPtr;
83. Функция создает прямоугольную матрицу *) function CreateMatrix(Row,Col : integer) : MatrixPtr;
84. Функция дублирует матрицу *)function CloneMatrix(MPtr : MatrixPtr) : MatrixPtr;
85. Функция удаляет матрицу и возвращает TRUE в случае удачи *) function DeleteMatrix(var MPtr : MatrixPtr) : boolean;
86. Функция заполняет матрицу указанным числом *)function FillMatrix(MPtr : MatrixPtr;Value : MatrixElement) : boolean;
87. Функция удаляет матрицу MPtrl и присваивает ей значение MPtr2 *) function AssignMatrix(var MPtrl : MatrixPtr;MPtr2 : MatrixPtr) : MatrixPtr;
88. Функция отображает матрицу на консоль *)function DisplayMatrix(MPtr : MatrixPtr;Int,Frac : integer) : boolean;
89. Функция возвращает TRUE, если матрица lxl *) function IsSingleMatrix(MPtr : MatrixPtr) : boolean;
90. Функция возвращает TRUE, если матрица квадратная *) function IsSquareMatrix(MPtr : MatrixPtr) : boolean;
91. Функция возвращает количество строк матрицы *) function GetMatrixRow(MPtr : MatrixPtr) : integer;
92. Функция возвращает количество столбцов матрицы *) function GetMatrixCol(MPtr : MatrixPtr) : integer;
93. Процедура устанавливает элемент матрицы *)procedure SetMatrixElement(MPtr : MatrixPtr;Row,Col : integer;Value : MatrixElement);
94. Функция возвращает элемент матрицы *)function GetMatrixElement(MPtr : MatrixPtr;Row,Col : integer) : MatrixElement;
95. Процедура устанавливает элемент матрицы. Нумерация строк и столбцов с нуля *)procedure SetMatrixElementO(MPtr : MatrixPtr;Row,Col : integer;Value : MatrixElement);
96. Функция заменяет строку (столбец) матрицы вектором *)function SetVectorIntoMatrix(MPtr,VPtr : MatrixPtr;Pos : integer) : MatrixPtr;
97. Функция транспонирует матрицу *)function TransponeMatrix(MPtr : MatrixPtr) : MatrixPtr;
98. Функция умножает матрицу на число *)function MultipleMatrixOnNumber(MPtr : MatrixPtr;Number : MatrixElement) : MatrixPtr;
99. Функция умножает матрицу на матрицу *)function MultipleMatrixOnMatrix(MPtr 1 ,MPtr2 : MatrixPtr) : MatrixPtr; (* Функция суммирует две матрицы *)function AddMatrixOnMatrix(MPtrl ,MPtr2 : MatrixPtr) : MatrixPtr;
100. Функция вычитает из первой матрицы вторую *)function SubMatrixOnMatrix(MPtr 1 ,MPtr2 : MatrixPtr) : MatrixPtr;
101. Функция выделяет из матрицы подматрицу: начСтрока, начСтлб, числоСтрок, числоСтлб *)function GetSubMatrix(MPtrl: MatrixPtr; RowStart,ColStart,RowCount,ColCount: integer) : MatrixPtr;
102. Функция выделяет из матрицы подматрицу: начСтрока, начСтлб, последняяСтрока, последнийСтлб *)function GetSubMatrixRange(MPtrl: MatrixPtr;RowStart,ColStart,RowEnd,ColEnd integer) : MatrixPtr;
103. Функция вставляет в матрицу подматрицу, замещая элементы матрицы MPtrlэлементами матрицы MPtr2: начСтрока, начСтлб *) function InsertSubMatrix(MPtrl ,SubMPtr2: MatrixPtr;RowStart,ColStart: integer) : Boolean;
104. AssignFile(F, namefile); Rewrite(F); except
105. Showmessage(^aM '+namefile+' не создан'); SaveMatrix:="; exit; end; trywriteln(F ,MatrixRo w); writeln(F,MatrixCol); for i:= 1 to MatrixRow do for j:= 1 to MatrixCol do writeln(F,GetMatrixElement(MPtr,i,j)); finally CloseFile(F); end; end;
106. SaveMatrix := namefile; end; end;
107. DDV Функция загружает матрицу из текстового файла *) function LoadMatrix(var MPtr : MatrixPtr; namefile: string) : boolean; var
108. TempPtr : MatrixPtr; i j : integer; F: TextFile;
109. NewRow, NewCol : integer; TempElement: MatrixElement;begin try
110. AssignFile(F, namefile); Reset(F); except
111. Showmessage(,фaйл '+namefile+' не считан!'); LoadMatrix:= False;exit; end; try
112. Readln(F ,Ne wRo w); Readln(F,NewCol);
113. Функция возвращает целочисленную степень *)function IntPower(X,n : integer) : integer;var1. Res,i : integer;beginif n < 1 then IntPower:= 0 else begin Res:= X;for i:=l to n-1 do Res:= Res*X; IntPower:= Res; end; end;
114. Функция создает квадратную матрицу *) function CreateSquareMatrix(Size : integer) : MatrixPtr; var
115. TempPtr : MatrixPtr; begin TempPtr:= nil;
116. GetMem(TempPtr,SizeOf(MatrixRec)); if TempPtr = nil then begin CreateSquareMatrix:= nil; Exit; end;with TempPtrA do begin MatrixRow:= Size; MatrixCol:= Size; MatrixArray:= nil;
117. GetMem(Matrix Array, S ize * S ize * S izeOf(MatrixElement)); if MatrixArray = nil then begin FreeMem(TempPtr, S izeOf(MatrixRec));
118. CreateSquareMatrix:= nil; Exit; end; end;
119. Fi HMatrix(TempPtr ,0); CreateSquareMatrix:= TempPtr; end;
120. Функция создает прямоугольную матрицу *) function CreateMatrix(Row,Col : integer) : MatrixPtr; var
121. TempPtr : MatrixPtr; begin TempPtr:= nil;
122. GetMem(TempPtr,SizeOf(MatrixRec)); if TempPtr = nil then begin CreateMatrix:= nil; Exit; end;with TempPtrA do begin MatrixRow:= Row; MatrixCol:= Col; MatrixArray:= nil;
123. GetMem(MatrixArray ,Ro w* Col * S izeOf(MatrixElement)); if MatrixArray = nil then begin FreeMem(TempPtr, S izeOf(MatrixRec)); CreateMatrix:= nil; Exit;end; end;
124. FillMatrix(TempPtr,0); CreateMatrix:^ TempPtr; end;
125. Функция удаляет матрицу и возвращает TRUE в случае удачи *)function DeleteMatrix(var MPtr : MatrixPtr) : boolean;beginif MPtr = nil then DeleteMatrix:= FALSE else with MPtrA do begin if MatrixArray <> nil then
126. FreeMem(MatrixArray,MatrixRow*MatrixCol*SizeOf(MatrixElement)); FreeMem(MPtr, S izeOf(MatrixRec)); MPtr:= nil;
127. DeleteMatrix:= TRUE; end; end;
128. Функция дублирует матрицу *)function CloneMatrix(MPtr : MatrixPtr) : MatrixPtr;var
129. TempPtr : MatrixPtr; i,j : integer; beginif MPtr = nil then CloneMatrix:= nil else with MPtrA do begin
130. Функция удаляет матрицу MPtrl и присваивает ей значение MPtr2 *) function AssignMatrix(var MPtrl : MatrixPtr;MPtr2 : MatrixPtr) : MatrixPtr;begin
131. DeleteMatrix(MPtr 1); MPtrl := MPtr2; AssignMatrix:= MPtrl; end;
132. DisplayMatrix:= TRUE; end; end;
133. Функция возвращает TRUE, если матрица lxl *) function IsSingleMatrix(MPtr : MatrixPtr) : boolean; beginif MPtr о nil then with MPtrA do begin if (MatrixRow = 1) and (MatrixCol = 1) then
134. SingleMatrix:= TRUE else IsSingleMatrix:= FALSE; end else IsSingleMatrix:= FALSE; end;
135. Функция возвращает количество строк матрицы *) function GetMatrixRow(MPtr : MatrixPtr) : integer; beginif MPtr <> nil then GetMatrixRow:= MPtrA.MatrixRow else GetMatrixRow:= 0; end;
136. Функция возвращает количество столбцов матрицы * function GetMatrixCol(MPtr : MatrixPtr) : integer; beginif MPtr о nil then GetMatrixCol:= MPtrA.MatrixCol else GetMatrixCol:= 0; end;
137. Процедура устанавливает элемент матрицы *)procedure SetMatrixElement(MPtr : MatrixPtr;Row,Col : integer;Value :1. MatrixElement);var
138. TempPtr : AMatrixElement; begin if MPtr <> nil then if (Row <> 0) or (Col <> 0) then with MPtrA do begin pointer(TempPtr) := pointer(Matrix Array); Inc(TempPtr,MatrixRow* (Col-1 )+Row-1); TempPtrA:= Value; end; end;
139. Функция возвращает элемент матрицы *)function GetMatrixElement(MPtr : MatrixPtr;Row,Col : integer) : MatrixElement; var
140. Процедура устанавливает элемент матрицы. Нумерация строк и столбцов с нуля *)procedure SetMatrixElementO(MPtr : MatrixPtr;Row,Col : integer;Value :1. MatrixElement);begin
141. SetMatrixElement(MPtr,Row+1 ,Col+1,Value); end;
142. DDV Функция возвращает элемент матрицы. Нумерация строк и столбцов с нуля*) ^function GetMatrixElementO(MPtr : MatrixPtr;Row,Col : integer) : MatrixElement; begin
143. GetMatrixElementO := GetMatrixElement(MPtr,Row+l,CoH-l); end;
144. Функция исключает векторы из матрицы *)function ExcludeVectorFromMatrix(MPtr : MatrixPtr;Row,Col : integer) : MatrixPtr; var
145. NewPtr : MatrixPtr; NewRow, NewCol : integer; i,j : integer;
146. DiffRow, DiffCol : integer; beginif MPtr <> nil then with MPtrA do beginif Row = 0 then NewRow:= MatrixRow else NewRow:- MatrixRow-1; if Col = 0 then NewCol:= MatrixCol else NewCol:= MatrixCol-1;
147. ExcludeVectorFromMatrix:= NewPtr; end else ExcludeVectorFromMatrix:= nil; end;
148. Функция заменяет строку(столбец) матрицы вектором *)function SetVectorIntoMatrix(MPtr,VPtr : MatrixPtr;Pos : integer) : MatrixPtr;var
149. SetVectorIntoMatrix:= TempPtr; end else SetVectorIntoMatrix:= nil; end;
150. DeleteMatrix(TempPtr); DetMatrix:= Sum; end else DetMatrix:= GetMatrixElement(MPtr, 1,1); end else DetMatrix:= 0; end;
151. DetTriangularMatrix:= Sum; end else DetTriangularMatrix:= 0; end;
152. Функция возвращает алгебраическое дополнение элемента матрицы *) function AppendixElement(MPtr : MatrixPtr;Row,Col : integer) : MatrixElement; var
153. TempPtr : MatrixPtr; beginif IsSquareMatrix(MPtr) then begin TempPtr: = Exclude VectorFromMatrix(MPtr,Row, Col); if TempPtr = nil then begin AppendixElement:= 0; Exit; end;
154. AppendixElement:= IntPower(-1 ,Row+Col)*DetMatrix(TempPtr); DeleteMatrix(TempPtr); end else AppendixElement:= 0; end;
155. Функция создает матрицу алгебраических дополнений элементов матрицы *)function CreateAppendixMatrix(MPtr : MatrixPtr) : MatrixPtr;var
156. Функция транспонирует матрицу *)function TransponeMatrix(MPtr : MatrixPtr) : MatrixPtr;var
157. Функция умножает матрицу на число *)function MultipleMatrixOnNumber(MPtr : MatrixPtr;Number : MatrixElement) :1. MatrixPtr;var
158. Функция умножает матрицу на матрицу *)function MultipleMatrixOnMatrix(MPtrl ,MPtr2 : MatrixPtr) : MatrixPtr; var
159. Функция суммирует две матрицы *)function AddMatrixOnMatrix(MPtrl,MPtr2 : MatrixPtr) : MatrixPtr; var
160. Функция вычитает из первой матрицы вторую *)function SubMatrixOnMatrix(MPtrl,MPtr2 : MatrixPtr) : MatrixPtr;var
161. Функция выделяет из матрицы подматрицу: начСтрока, начСтлб, числоСтрок, числоСтлб *)function GetSubMatrix(MPtrl: MatrixPtr;RowStart,ColStart,RowCount,ColCount:integer): MatrixPtr;var
162. Функция выделяет из матрицы подматрицу: начСтрока, начСтлб, последняяСтрока, последнийСтлб *)function GetSubMatrixRange(MPtr 1: MatrixPtr;RowStart,ColStart,RowEnd,ColEndinteger) : MatrixPtr;var
163. Функция вставляет в матрицу подматрицу, замещая элементы матрицы MPtrlэлементами матрицы MPtr2: начСтрока, начСтлб *) function InsertSubMatrix(MPtr 1 ,SubMPtr2: MatrixPtr;RowStart,ColStart: integer) : Boolean; var
164. SetMatrixElement(Mptr 1 ,i 1 ,j 1 ,GetMatrixElement(SubMPtr2,i,j)); end;1.sertSubMatrix := true;end;else begin InsertSubMatrix := False; Exit; end;end else InsertSubMatrix := False; end;
165. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,matrixbyteDDV, Buttons, Grids;type
166. Private declarations } public
167. Public declarations } end;var
168. ЬаЬе12.Сарйоп:-Введите объем ресурсов для '+IntToSTR(ii)+'-ro приложения' else begin1.bel2.Caption:-Введите количество серверов'; end;
169. Проректор по учебной работе Московского государственного текстильного университетавнедрения результатов научных исследований в учебный процесс
170. Заведующий кафедрой АСОИУ, профессор У/Ш^ В.И.Монахов1. Утверждаю
171. Генеральный директор, ^яЕешщльный конструктор Электрон»,1. АКТвнедрения результатов диссертационной работы Козловского А.Л.
172. Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров» предъявленной на соискание ученой степени кандидата технических наук
173. Настоящим актом подтверждается, что результаты диссертационной работы Козловского А.Л. использованы в ФГУП «МКБ Электрон» в процессе разработки и внедрения автоматизированных систем управления предприятием.
174. Настоящий акт удостоверяет, что ООО «НПЦ «Квадра» при выполнении работ по проектированию информационных и управляющих систем использует алгоритмы и программы оптимизации загрузки серверного оборудования.
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.