Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров тема диссертации и автореферата по ВАК РФ 05.13.05, кандидат технических наук Козловский, Александр Львович

  • Козловский, Александр Львович
  • кандидат технических науккандидат технических наук
  • 2012, Москва
  • Специальность ВАК РФ05.13.05
  • Количество страниц 163
Козловский, Александр Львович. Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров: дис. кандидат технических наук: 05.13.05 - Элементы и устройства вычислительной техники и систем управления. Москва. 2012. 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 шифр ВАК

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

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

Заключение диссертации по теме «Элементы и устройства вычислительной техники и систем управления», Козловский, Александр Львович

Выводы по 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 файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.