Помощь в учёбе, очень быстро...
Работаем вместе до победы

Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Приводятся результаты решения трех различных задач планирования ресурсов виртуализованного кластера, развертываемого в ходе миграции, полученные с помощью программы ШЭ-са1си1а1-ог. Показано, что колличество используемых серверов в зависимости от задачи может быть снижено после перехода на технологию виртуализации в среднем на 40%. Разработаны математические модели и алгоритмы распределения… Читать ещё >

Содержание

  • Глава 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. Тестовая задача №
    • 4. 3. Задача №
  • Выводы по 4 главе

Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров (реферат, курсовая, диплом, контрольная)

Актуальность темы

На сегодняшний день виртуализация серверной инфраструктуры является одной из основных тенденций развития отрасли информационных и коммуникационных технологий. Многие ведущие мировые производители программного обеспечения выпускают на рынок соответствующие продукты. Столь широкое внедрение технологий виртуализации связано с тем, что в последнее время был совершен большой технологический прорыв в области виртуализации операционных систем, открывший огромные возможности и перспективы. Под виртуализацией операционных систем понимают процесс создания на физическом сервере или вычислительном кластере так называемой виртуальной машины, в которой устанавливается своя собственная операционная система. Виртуальных машин на одной физической платформе может быть множество, при этом каждая виртуальная машина имеет свои собственные виртуальные аппаратные компоненты: память, процессор, жесткий диск, сетевые а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 работы — в журналах из перечня ВАК. Получено свидетельство об официальной регистрации программы для ЭВМ.

Реализация и внедрение результатов работы.

Основные результаты диссертационной работы внедрены в ФГУП «МКБ Электрон», ООО НПЦ «Квадра», а также в учебный процесс Московского государственного текстильного университета имени А. Н. Косыгина по дисциплине «Теоретические основы автоматизированного управления» в лекционном курсе и при выполнении лабораторных работ.

Выводы по 4 главе.

1. Приводятся результаты решения трех различных задач планирования ресурсов виртуализованного кластера, развертываемого в ходе миграции, полученные с помощью программы ШЭ-са1си1а1-ог. Показано, что колличество используемых серверов в зависимости от задачи может быть снижено после перехода на технологию виртуализации в среднем на 40%.

2. Произведен анализ ИТ инраструктуры предприятий и предложены различные сценарии создания виртуализованных вычислительных кластеров. Предложенные сценарии позволяют существенно снизить простой вычислительных мощностей.

3. Разработанный инструментарий может быть использован рядовыми инженерами для оптимизации распределения ресурсов виртуализованных вычислительных кластеров.

Заключение

.

В результате выполнения работы:

1. Проведен анализ используемых на практике методов планирования ресурсов виртуализованных кластеров при решении задач управления, выявлено отсутствие целостного универсального подхода.

2. Разработаны математические модели оптимального планирования ресурсов виртуализованного вычислительного кластера, пригодные для применения как для унаследованных аппаратных комплексов, так и для новых систем.

3. Разработан алгоритм и программная реализация предложенных математических моделей, позволяющие получать любое заданное число вариантов распределения ресурсов.

4. Разработана методика применения программного обеспечения для достижения оптимального распределения ресурсов виртуализованного кластера с учетом надежностных характеристик элементов и устройств вычислительной техники, включенных в виртуализованный вычислительный кластер.

5. В процессе внедрения разработанного программного обеспечения и предложенной методики проведено экспериментальное исследование на ряде модельных примеров и реальных производственных задач в областях, используемых, в том числе для систем управления.

Показать весь текст

Список литературы

  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. А. Л., Программа распределения ресурсов виртуализованного кластера. Свидетельство об официальной регистрации программы для ЭВМ № 2 011 617 318 от 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. С., 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. Настоящий акт удостоверяет, что ООО «НПЦ «Квадра» при выполнении работ по проектированию информационных и управляющих систем использует алгоритмы и программы оптимизации загрузки серверного оборудования.
Заполнить форму текущей работой