RU2727070C1 - Средство инструментального оснащения для временных промежутков - Google Patents
Средство инструментального оснащения для временных промежутков Download PDFInfo
- Publication number
- RU2727070C1 RU2727070C1 RU2019102988A RU2019102988A RU2727070C1 RU 2727070 C1 RU2727070 C1 RU 2727070C1 RU 2019102988 A RU2019102988 A RU 2019102988A RU 2019102988 A RU2019102988 A RU 2019102988A RU 2727070 C1 RU2727070 C1 RU 2727070C1
- Authority
- RU
- Russia
- Prior art keywords
- computing device
- interval
- execution
- time
- time interval
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Изобретение относится к средствам сбора и обработки информации инструментального оснащения для временных промежутков для вычислительного устройства. Техническим результатом является повышение производительности в рамках рабочей нагрузки путем группирования ряда заданий или блоков рабочих задач с совокупными ресурсами кеша. Компьютерная система для обеспечения обработки в вычислительном окружении содержит память и процессор и обеспечивает сбор информации инструментального оснащения для временных промежутков, разделение временных промежутков для вычислительного устройства, подсчитывает число наступлений заданного события, причем подсчитанные события, происходящие на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке, сохраняют, вычислительное устройство чередует обработку нескольких различных блоков рабочих задач в течение нескольких непрерывных временных промежутков, и на протяжении единственного временного промежутка система обрабатывает единственный блок рабочих задач из числа нескольких различных блоков рабочих задач. Способ описывает работу системы. 3 н. и 16 з.п. ф-лы, 8 ил.
Description
Уровень техники
Один или несколько аспектов относятся, в целом, к обработке в вычислительном окружении, и прежде всего, к улучшению такой обработки.
В компьютерной системе планировщик имеет возможность администрирования выделением компьютерных ресурсов для блоков рабочих задач путем присвоения приоритета различным подлежащим выполнению блокам рабочих задач. Планировщик выявляет момент времени и компьютерный ресурс для диспетчеризации блока рабочей задачи, а также продолжительность периода времени, выделенного для занятия ресурса. Планировщик рабочей нагрузки может включать в себя агенты отслеживания, которые работают на машинах под управлением планировщика. Базы данных контроллера удерживают детали подлежащей выполнению работы, команды планирования, а также информацию о ресурсах и ограничениях. Базы данных имеют возможность предоставления информации для выявления момента производства работы в будущем. Кроме того, из информации получают подробный план обработки, что обеспечивает возможность выполнения второстепенных заданий по мере завершения процессов и высвобождения ресурсов.
Программное обеспечение для планирования выполнения заданий является способным к улучшению производительности в рамках рабочей нагрузки путем группирования ряда заданий или блоков рабочих задач с совокупными ресурсами кеша, которые являются подобными полной структуре кеша выделенного вычислительного устройства, но не превосходящими его. Как правило, рабочую нагрузку периодически планируют для обработки во фрагментах времени. Каждый фрагмент времени считают временным промежутком.
Сущность изобретения
Недостатки известного уровня техники преодолены, а дополнительные преимущества обеспечены посредством предоставления компьютерного программного продукта для обеспечения обработки в вычислительном окружении. Компьютерный программный продукт содержит информационный носитель, который может быть считан посредством устройства обработки данных, и который сохраняет требуемые для осуществления способа посредством устройства обработки данных команды. Способ включает в себя, например, сбор информации инструментального оснащения для временных промежутков для вычислительного устройства на протяжении выполнения. Сбор включает в себя: по меньшей мере, частичный подсчет числа наступлений заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства, и сохранение числа подсчитываемых событий вычислительного устройства, наступающих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке. Первый интервал выполнения является более ранним во временном промежутке, чем второй интервал выполнения, причем подсчет событий вычислительного устройства обеспечивает регулирование производительности вычислительного устройства.
Предпочтительно, обработка в вычислительном окружении усилена путем предоставления процессору или вычислительному устройству инструментального оснащения, упоминаемого в настоящем документе как инструментальное оснащение для временных промежутков, которое является средством (для программного обеспечения для планирования работы) для получения измерений числа событий, происходящих в вычислительном устройстве на протяжении двух отличных промежутков времени при обработке блока рабочей задачи, то есть в пределах двух отличных интервалов выполнения в составе временного промежутка вычислительного устройства. Заданные измеряемые (или подсчитываемые) события вычислительного устройства могут включать в себя метрики локального кеша. Интервалы времени, в течение которых регистрируют измерения, соответствуют раннему и позднему интервалам в непрерывном течении времени, то есть временного промежутка обработки процессором блока рабочей задачи. Подсчитываемые события вычислительного устройства сохраняются и могут быть проанализированы, например, посредством планировщика рабочей нагрузки для рассмотрения в ходе принятия последующих решений по диспетчеризации работ. Предпочтительно, средство предоставляет (в одном или нескольких аспектах) механизм для уменьшения неудачных обращений в кеш вычислительного устройства, и тем самым, улучшения производительности для отдельных блоков рабочих задач, а также для рабочей нагрузки в целом.
В одном или нескольких вариантах осуществления представленное в настоящем документе средство вводит новые счетчики инструментального оснащения, новые журналы счетчиков, новую команду на инициирование сбора данных счетчиков и новую команду на считывание и на сохранение журналов счетчиков. Доступ к раскрытым в настоящем документе счетчикам и журналам может быть ограничен программами в супервизорном режиме.
Прежде всего, в одном или нескольких вариантах осуществления временной промежуток может быть непрерывным периодом времени выполнения вычислительного устройства, а заданное событие вычислительного устройства может быть представлено событием кеша или включать его в себя. Вычислительное устройство может чередовать обработку нескольких различных блоков рабочих задач в течение нескольких непрерывных временных промежутков, и на протяжении единственного временного промежутка вычислительное устройство обрабатывает единственный блок рабочих задач из числа нескольких различных блоков рабочих задач.
В одном или нескольких вариантах осуществления первый интервал выполнения включает в себя начальный интервал выполнения во временном промежутке, а второй интервал выполнения включает в себя наиболее недавно завершенный интервал выполнения во временном промежутке. Первый интервал выполнения и второй интервал выполнения могут иметь равную продолжительность. Кроме того, в одном или нескольких вариантах осуществления второй интервал выполнения может включать в себя последний интервал выполнения во временном промежутке.
В одном или нескольких вариантах осуществления подсчет может включать в себя использования счетчиков инструментального оснащения для временных промежутков, локальных для вычислительного устройства, и выполнение подсчета числа наступлений заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства. В одном варианте осуществления, заданное событие вычислительного устройства может включать в себя событие кеша, выбранное из группы, состоящей из неудачного обращения в кеш и удачного обращения в кеш.
В качестве примера, в одном или нескольких вариантах осуществления сбор может быть инициирован путем выполнения команды инициирования инструментального оснащения для временных промежутков, а сохранение подсчитываемых событий вычислительного устройства может быть инициировано путем выполнения команды сохранения счетчиков инструментального оснащения для временных промежутков.
В другом аспекте, предоставлена компьютерная система для обеспечения обработки в вычислительном окружении. Компьютерная система включает в себя память и сообщенный с возможностью связи с памятью процессор, причем компьютерная система выполнена для осуществления способа. Способ включает в себя, например, сбор информации инструментального оснащения для временных промежутков для вычислительного устройства на протяжении выполнения. Сбор включает в себя: по меньшей мере, частичный подсчет числа наступлений заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства, и сохранение числа подсчитываемых событий вычислительного устройства, наступающих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке. Первый интервал выполнения является более ранним во временном промежутке, чем второй интервал выполнения, причем подсчет событий вычислительного устройства обеспечивает регулирование производительности вычислительного устройства.
В другом аспекте, предоставлен компьютерно-реализуемый способ обеспечения обработки в вычислительном окружении. Компьютерно-реализуемый способ включает в себя, например, сбор информации инструментального оснащения для временных промежутков для вычислительного устройства на протяжении выполнения. Сбор включает в себя: по меньшей мере, частичный, подсчет числа наступлений заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства, и сохранение числа подсчитываемых событий вычислительного устройства, наступающих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке. Первый интервал выполнения является более ранним во временном промежутке, чем второй интервал выполнения, причем подсчет событий вычислительного устройства обеспечивает регулирование производительности вычислительного устройства.
Посредством описанных в настоящем документе методов реализованы дополнительные признаки и преимущества. Другие варианты осуществления и аспекты подробно описаны в настоящем документе и считаются частью заявленного изобретения.
Краткое описание чертежей
Один или несколько аспектов, прежде всего, указаны и явным образом заявлены в качестве примеров в пунктах формулы изобретения в конце технического описания. Ранее указанные и другие цели, признаки и преимущества являются очевидными из последующего подробного описания, предпринятого совместно с сопровождающими чертежами, на которых:
Фиг. 1А изображает один пример вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 1Б изображает дополнительные подробности вычислительного устройства на фиг. 1А, согласно аспекту настоящего изобретения,
Фиг. 2А изображает другой пример вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 3Б изображает более подробную информацию по памяти на фиг. 2А,
Фиг. 3 изображает один вариант осуществления обработки, выполняемой с использованием средства инструментального оснащения для временных промежутков, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 4А изображает один пример команды инициирования инструментального оснащения для временных промежутков (TSION), согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 4Б изображает один пример команды сохранения счетчиков инструментального оснащения для временных промежутков (STSIC), согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 4В изображает один вариант осуществления структуры данных, сохраняющей результаты измерений, извлеченные командой сохранения счетчиков инструментального оснащения для временных промежутков (STSIC), согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 5А изображает один пример рабочей нагрузки, которая подлежит выполнению посредством вычислительного устройства, и подвергается контролю инструментального оснащения для временных промежутков, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 5Б изображает типовые измерения метрик кеша на протяжении первого и последнего интервалов выполнения в соответствующем временном промежутке для каждого блока рабочей задачи, идентифицируемой в структуре данных на фиг. 5А, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 5В изображает пример измененного плана выполнения после оценки результатов инструментального оснащения для временных промежутков, и показывает улучшенные метрики кеша для одной или нескольких блоков рабочих задач рабочей нагрузки на фиг. 5А, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 6А-6Б изображают один пример обработки инструментального оснащения для временных промежутков, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 7 изображает один вариант осуществления облачного вычислительного окружения, и
Фиг. 8 изображает один пример уровней модельной абстракции.
Подробное описание
Повышение производительности вычислительного окружения обеспечено инструментальным оснащением компьютерного вычислительного устройства, упоминаемым в настоящем документе как инструментальное оснащение для временных промежутков (TSI), которое предоставляет средство для планирования работы (например, программное обеспечение планирования работы) для получения измерений числа событий, происходящих в вычислительном устройстве (PU), такого как центральное вычислительное устройство (CPU), на протяжении двух отличных интервалов выполнения во временном промежутке, в то время как вычислительное устройство обрабатывает соответствующий блок рабочих задач. Измеряемые события вычислительного устройства могут включать в себя метрики локального кеша. Периоды регистрации измерений, соответствуют, в одном или нескольких вариантах осуществления раннему и позднему интервалам во временном промежутке (то есть, непрерывной единицы времени) обработки PU. Полученные результаты измерения могут быть проанализированы планировщиком рабочей нагрузки, предоставленным в качестве компонента операционной системы, и учтены в ходе принятия последующих решений по диспетчеризации работы. Получаемая выгода может быть представлена уменьшением числа неудачных обращений в кеш вычислительного устройства, и тем самым, повышенной производительностью для отдельных блоков рабочих задач, а также для рабочей нагрузки в целом.
Раскрытое в настоящем документе средство инструментального оснащения для временных промежутков предусматривает операционную систему с инструментом для измерения, например, числа событий в структуре кеша на протяжении раздельных интервалов выполнения во временном промежутке выполнения процессора. Контролируемые события кеша могут быть машинозависимыми, и могут включать в себя общие связанные с кешем метрики производительности, такие как неудачные обращения в кеш, удачные обращения в кеш, MRU (максимальная длина получаемых пакетов) и т.д. Два периода времени выполнения для сбора нового инструментального оснащения имеют, например, равную продолжительность, и в одном варианте осуществления, определены для аппаратных средств посредством программного обеспечения. В одном или нескольких вариантах осуществления первый интервал выполнения может покрывать начало диспетчеризированного для блока рабочей задачи временного промежутка, когда кеш является «холодным», а второй период выполнения может покрывать конец диспетчеризированного для блока рабочей задачи временного промежутка, когда кеш является «теплым». Сохраненные результаты подсчитываемых событий вычислительного устройства могут быть подвергнуты сравнению для временного интервала, и могут быть использованы для изменения идентификации последующих диспетчеризируемых группировок рабочей нагрузки в качестве подходящих. Раскрытое в настоящем документе средство инструментального оснащения для временных промежутков может быть реализовано как независимое средство, пребывающее в связи с вычислительным устройством. Как дополнительно описано ниже, новые инструментальные счетчики, новые журналы счетчиков и новые команды могут быть применены для инициирования сбора новых данных счетчиков, и для считывания и сохранения новых журналов счетчиков. Доступ к новым счетчикам и журналам может быть ограничен программами в супервизорном режиме.
Прежде всего, раскрытое в настоящем документе средство инструментального оснащения для временных промежутков, когда оно инсталлировано, предоставляет управляющей программе, такой как планировщик рабочей нагрузки, возможность измерения некоторых событий вычислительного устройства на протяжении двух интервалов выполнения программы, например в общем временном промежутке. Средство инструментального оснащения для временных промежутков (TSI) включает в себя повторяющийся с заданным интервалом импульс, локальный для каждого вычислительного устройства, несколько TSI счетчиков, локальных для каждого вычислительного устройства, несколько пар журналов счетчиков TSI для всех TSI счетчиков, локальных для каждого вычислительного устройства, а также команды на инициацию и извлечение измерений данных, включая сюда команду инициирования инструментального оснащения для временных промежутков (TSION) и команду сохранения счетчиков инструментального оснащения для временных промежутков (STSIC). Когда инструментальное оснащения для временных промежутков является активным на вычислительном устройстве, вычислительное устройство периодически перезапускает подсчет числа событий вычислительного устройства, таких как неудачные обращения в кеш или удачные обращения в кеш, как дополнительно объяснено ниже.
Вычислительное устройство поддерживает историю подсчитываемых событий, произошедших во время, например, первоначального и наиболее недавно завершенного интервалов выполнения во временном промежутке. Зарегистрированные и сохраненные значения счетчиков TSI могут быть упомянуты как журналы счетчиков TSI. Как отмечено, инструментальное оснащение для временных промежутков может быть активировано при помощи описанной в настоящем документе команды инициирования инструментального оснащения для временных промежутков, а результаты измерений могут быть получены при помощи команды сохранения счетчиков инструментального оснащения для временных промежутков.
Один вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов описан с отсылками на фиг. 1А. В другом примере, вычислительное окружение основано на z/Архитектуре, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Один вариант осуществления z/Архитектуры описан в публикации IBM® под названием «z/Архитектура, принципы работы» (z/Architecture, Principles of Operation), публикация IBM № SA 22-7832-10, март 2015, включенной в настоящий документ путем отсылки в полном объеме, z/Architecture является зарегистрированной торговой маркой International Business Machines Corporation, Армонк, Нью-Йорк, США.
В другом примере, вычислительное окружение основано на Архитектуре Power, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Один вариант осуществления Архитектуры Power описан в публикации «Power ISA™ версия 2.07В» (Power ISA™ Version 2.07В), International Business Machines Corporation, от 9 апреля 2015, включенной в настоящий документ путем отсылки в полном объеме. Power Architecture является зарегистрированной торговой маркой International Business Machines Corporation, Армонк, Нью-Йорка, США.
Вычислительное окружение может также быть основано на другой архитектуре, в том числе, но не ограничиваясь, на архитектуре Intel х86. Имеются также и другие примеры.
Как показано на фиг. 1А, вычислительное окружение 100 включает в себя, например, узел 10, имеющий, например, компьютерную систему/сервер 12, которая может быть использована совместно с многочисленными другими окружениями, вычислительными системами или конфигурациями общего назначения или особого назначения. Примеры известных вычислительных систем, окружений и/или конфигураций, которые могут подойти для использования с компьютерной системой/сервером 12, включают в себя, но ими не ограничиваются, системы персонального компьютера (ПК), серверные компьютерные системы, тонкие клиенты, толстые клиенты, наладонные или переносные устройства, многопроцессорные системы, основанные на микропроцессорах системы, декодеры каналов кабельного телевидения, программируемую бытовую электронику, сетевые персональные компьютеры, миникомпьютерные системы, мэйнфреймовые компьютерные системы, а также распределенные облачные вычислительные окружения, включающие в себя любые из вышеупомянутых систем или устройств, и т.п.
Компьютерная система/сервер 12 может быть описана в общем контексте выполняемых компьютерной системой команд, таких как выполняемые компьютерной системой программные модули. Обычно, программные модули могут включать в себя подпрограммы, программы, объекты, компоненты, логику, структуры данных и тому подобные элементы, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Компьютерная система/сервер 12 может быть применена во многих вычислительных окружениях, в том числе, но не ограничиваясь, в распределенных облачных вычислительных окружениях, где задачи выполняют связанные посредством коммуникационной сети отдаленные устройства обработки. В распределенном окружении облачных вычислений программные модули могут быть расположены как в локальных, так и в удаленных носителях информации компьютерной системы, содержащих запоминающие устройства памяти.
Как показано на фиг. 1А, компьютерная система/сервер 12 показана в виде вычислительного устройства общего назначения. Компоненты компьютерной системы/сервера 12 могут включать в себя, но не ими ограничиваются, один или несколько процессоров или вычислительных устройств 16, системную память 28, и шину 18, которая соединяет с процессором 16 различные компоненты системы, включающие в себя системную память 28.
Шина 18 представляет собой один или более из числа любых нескольких типов структур шины, включая сюда шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, и шину процессора или локальную шину, использующую любую из ряда шинных архитектур. В качестве примера, но не ограничения, такая архитектура включает в себя шину Промышленной стандартной архитектуры (ISA), шину Микроканальной архитектуры (МСА), шину Расширенной ISA архитектуры (EISA), локальную шину Ассоциации по стандартам в области видео-электроники (VESA) и шину Взаимодействия периферийных компонентов (PCI).
Компьютерная система/сервер 12 обычно включает в себя ряд считываемых компьютерной системой носителей. Такие носители могут быть представлены любыми доступными носителями, который являются доступными посредством компьютерной системы/сервера 12, и которые включают в себя как энергозависимые, так и энергонезависимые носители, съемные и несъемные носители.
Системная память 28 может включать в себя считываемые компьютерной системой носители в виде энергозависимой памяти, такие как оперативная память (RAM) 30 и/или кеш-память 32. Компьютерная система/сервер 12, кроме того, может включать в себя и другие съемные и несъемные, энергозависимые и энергонезависимые информационные носители компьютерной системы. Исключительно в качестве примера, может быть предоставлена система 34 хранения для считывания из несъемных, энергонезависимых магнитных носителей (не показанных и обычно называемых «жестким диском») и для записи в них. Хотя не показаны, могут быть предоставлены магнитный дисковод для считывания из несъемного, энергонезависимого магнитного диска (например, «гибкого диска») и для записи в него, и оптический дисковод для считывания из несъемного, энергонезависимого оптического диска, такого как CD-ROM, DVD-ROM или другие оптические носители, и для записи в них. В таких реализациях каждый дисковод может быть присоединен к шине 18 посредством одного или нескольких интерфейсов носителей данных. Как, кроме того, изображено и описано ниже, память 28 может включать в себя по меньшей мере один программный продукт, имеющий набор (например, по меньшей мере один) программных модулей, которые сконфигурированы для выполнения функций вариантов осуществления настоящего изобретения.
Программа/сервисная программа 40, имеющая (по меньшей мере один) набор программных модулей 42, может быть сохранена в памяти 28, равно как операционная система, одна или несколько прикладных программ, другие программные модули и данные программы. Каждый элемент из числа операционной системы, одной или нескольких прикладных программ, других программных модулей и данных программы или некоторая комбинация из них может включать в себя реализацию сетевого окружения. Программные модули 42 в основном выполняют функции и/или методологии предпочтительных вариантов осуществления настоящего изобретения, как они описаны в настоящем документе.
Компьютерная система/сервер 12 может также сообщаться с одним или несколькими внешними устройствами 14, такими как клавиатура, позиционирующее устройство, дисплей 24, и т.д., с одним или несколькими устройствами, обеспечивающими пользователю взаимодействие с компьютерной системой/сервером 12, и/или любыми устройствами (например, сетевой платой, модемом и т.д.), которые обеспечивают компьютерной системе/серверу 12 сообщение с одним или несколькими другими вычислительными устройствами. Такая коммуникация может происходить через вводные/выводные (I/O) интерфейсы 22. Кроме того, компьютерная система/сервер 12 может сообщаться через сетевой адаптер 20 с одной или несколькими сетями, такими как локальная сеть (LAN), общая глобальная сеть (WAN) и/или сеть общего пользования (например, Интернет). Как изображено, сетевой адаптер 20 сообщается с другими компонентами компьютерной системы/сервера 12 через шину 18. Следует понимать, что совместно с компьютерной системой/сервером 12 могут быть использованы, хотя и не показаны, другие аппаратные компоненты и/или компоненты программного обеспечения. Примеры, в том числе, но не ограничиваясь: микрокод, драйверы устройств, резервные вычислительные устройства, массивы внешних дисководов, системы RAID (массивы недорогих дисковых накопителей с избыточностью), устройства записи на ленту, системы архивного хранения данных и т.д.
В качестве примера, вычислительное устройство 16 может включать в себя несколько используемых для выполнения команд функциональных компонентов. Как изображено на фиг. 1Б, эти функциональные компоненты включают в себя, например, компонент 120 выборки команд для выборки подлежащих выполнению команд, устройство 122 декодирования команд для декодирования выбранных команд, компонент 124 выполнения команд для выполнения декодированных команд, компонент 126 доступа к памяти для доступа, в случае необходимости, к памяти для выполнения команд, и компонент 130 перезаписи для предоставления результатов выполненных команд. Один или несколько из этих компонентов, согласно аспекту настоящего изобретения, может быть использован для реализации средства 136 инструментального оснащения для временных промежутков, которое в одном или нескольких вариантах осуществления включает в себя повторяющийся интервал 137 выполнения, TSI счетчики 138, а также TSI журналы 139 счетчиков, как дополнительно описано ниже.
В одном варианте осуществления процессор 16 также включает в себя один или несколько регистров 140 для использования посредством одного или нескольких из числа функциональных компонентов.
Другой вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов описан с отсылками на фиг. 2А. В этом примере, вычислительное окружение 200 включает в себя, например, предназначенное для исходной среды центральное вычислительное устройство (CPU) 202, память 204, а также одно или несколько устройств ввода-вывода и/или интерфейсов 206, соединенных друг с другом, например, через одну или несколько шин 208 и/или других присоединений. Например, вычислительное окружение 200 может включать в себя процессор PowerPC или сервер pSeries, предлагаемые International Business Machines Corporation, Армонк, Нью-Йорк, HP Superdome с процессорами Intel Itanium II, предлагаемый Hewlett Packard, Пало-Альто, Калифорния, и/или другие машины, основанные на архитектурах, предлагаемых International Business Machines Corporation, Hewlett Packard, Intel, Oracle или другими.
Собственное центральное вычислительное устройство 202 включает в себя одни или несколько собственные регистры 210, такие как одни или несколько регистры общего назначения и/или одни или несколько регистры особого назначения, используемые, на протяжении обрабатывания в окружении. Эти регистры включают в себя информацию, представляющую состояние окружения на какой-либо конкретный момент времени.
Кроме того, предназначенное для исходной среды центральное вычислительное устройство 202 выполняет команды и код, которые сохраняются в памяти 204. В одном конкретном примере, центральное вычислительное устройство выполняет код 212 эмулятора, сохраняемый в памяти 204. Этот код позволяет вычислительному окружению, сконфигурированному в одной архитектуре, эмулировать другую архитектуру. Например, код 212 эмулятора позволяет основанным на отличных от z/Архитектуры архитектурах машинам, таким как процессоры PowerPC, серверы pSeries, серверы HP Superdome или другим, эмулировать z/Архитектуру и выполнять программное обеспечение и команды, разработанные на основе z/Архитектуры.
Дополнительные, относящиеся к коду 212 эмулятора подробности, приведены с отсылками на фиг. 2Б. Сохраняемые в памяти 204 гостевые команды 250 содержат команды программного обеспечения (например, коррелирующие с машинными командами), которые были разработаны для выполнения в архитектуре, отличной от таковой для предназначенного для исходной среды CPU 202. Например, гостевые команды 250 могут быть разработаны для выполнения на процессоре z/Архитектуры, но вместо этого, эмулируются на предназначенном для исходной среды CPU 202, которое может быть представлено, например, процессором Intel Itanium II. В одном примере, код 212 эмулятора включает в себя подпрограмму 252 выборки команд для получения одной или нескольких гостевых команд 250 из памяти 204 и, факультативно, для предоставления локальной буферизации для полученных команд. Он также включает в себя подпрограмму 254 трансляции команд для выявления типа полученной гостевой команды и для трансляции гостевой команды в одну или несколько соответствующих команд 256 исходной среды. Такая трансляция включает в себя, например, идентификацию функции, которая подлежит выполнению посредством гостевой команды, и выбор предназначенной для исходной среды команды (команд) для выполнения этой функции.
Кроме того, код 212 эмулятора включает в себя подпрограмму 260 управления эмуляцией для принуждения команд исходной среды к выполнению. Подпрограмма 260 управления эмуляцией может принудить предназначенное для исходной среды CPU 202 к выполнению подпрограммы команд исходной среды, которые эмулируют одну или несколько ранее полученных гостевых команд и, в конце такого выполнения, возвращают управление подпрограмме выборки команд для эмуляции получения следующей гостевой команды или группы гостевых команд. Выполнение команд 256 исходной среды может включать в себя загрузку данных в регистр из памяти 204, сохранение данных обратно в память из регистра, или выполнение арифметической или логической операции некоторого типа, как задано подпрограммой трансляции.
Каждая подпрограмма, например, реализуется в программном обеспечении, сохраняемом в памяти и выполняемом посредством предназначенного для исходной среды центрального вычислительного устройства 202. В других примерах, одна или несколько из числа подпрограмм или операций, реализуются во встроенном программном обеспечении, аппаратных средствах, программном обеспечении или в некоторой комбинации из этих средств. Регистры эмулированного процессора могут быть эмулированы с помощью регистров 210 предназначенного для исходной среды CPU или при помощи местоположений в памяти 204. В вариантах осуществления, гостевые команды 250, команды 256 исходной среды и код 212 эмулятора могут находиться в той же самой памяти или могут быть рассредоточены среди различных запоминающих устройств.
При рассмотрении в настоящем документе, встроенное программное обеспечение включает в себя, например, микрокод, милликод и/или макрокод процессора. Оно включает в себя, например, команды аппаратного уровня и/или структуры данных, используемые в реализации высокоуровневого машинного кода. В одном варианте осуществления, встроенное программное обеспечение включает в себя, например, проприетарный код, обычно поставляемый как микрокод, который включает в себя выверенное программное обеспечение, или микрокод, специфичный для используемого оборудования, и управляющий доступом операционной системы к оборудованию системы.
Гостевая команда 250, которую получают, транслируют и выполняют, представлена, например, описанной в настоящем документе командой инициирования инструментального оснащения для временных промежутков (TSION) или командой сохранения счетчиков инструментального оснащения для временных промежутков (STSIC). Команду, которая имеет одну архитектуру (например, z/Архитектуру), выбирают из памяти, транслируют и представляют в виде последовательности команд 256 исходной среды другой архитектуры (например, PowerPC, pSeries, Intel и т.д.). Эти команды исходной среды могут быть затем выполнены.
В настоящем документе описаны детали, относящиеся к одному или нескольким вариантам осуществления команды инициирования инструментального оснащения для временных промежутков (TSION) и команды сохранения счетчиков инструментального оснащения для временных промежутков (STSIC), включая сюда поля команд и выполнение их процессором (как в предназначенной для исходной среды, так и в эмулированной системе).
Согласно одному или нескольким аспектам настоящего изобретения, представлено средство инструментального оснащения для временных промежутков для сбора информации инструментального оснащения для временных промежутков для вычислительного устройства на протяжении выполнения, например, для центрального вычислительного устройства на протяжении выполнения блока рабочей задачи. Сбор, который может быть инициирован посредством раскрытой в настоящем документе команды инициирования инструментального оснащения для временных промежутков (TSION), может включать в себя по меньшей мере, частичный, подсчет числа наступлений заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства, а также сохранение подсчитываемых событий вычислительного устройства, происходящих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке. Первый интервал выполнения является более ранним во временном промежутке, чем второй интервал выполнения, и сохраненные подсчитываемые события вычислительного устройства обеспечивают регулирование производительности вычислительного устройства. Сохранение может быть инициировано путем выполнения раскрытой в настоящем документе команды сохранения счетчиков инструментального оснащения для временных промежутков (STSIC).
В одном или нескольких вариантах осуществления временной промежуток может быть непрерывным периодом времени выполнения вычислительного устройства, а заданное событие вычислительного устройства может быть представлено событием кеша или включать в себя таковое. В качестве примера, вычислительное устройство может быть запланировано к чередующейся обработке нескольких различных блоков рабочих задач в течение нескольких непрерывных временных промежутков, а также на протяжении единственного временного промежутка, при этом блок рабочей задачи в составе нескольких различных блоков рабочих задач может быть обработан посредством вычислительного устройства. В одном или нескольких вариантах осуществления первый интервал выполнения включает в себя начальный интервал выполнения в соответствующем временном промежутке, и второй интервал выполнения включает в себя наиболее недавно завершенный интервал выполнения во временном промежутке. Первый интервал выполнения и второй интервал выполнения могут иметь равную продолжительность. В качестве примера, второй интервал выполнения может быть последним интервалом выполнения во временном промежутке.
В одном или нескольких вариантах осуществления подсчет может включать в себя использование счетчиков инструментального оснащения для временных промежутков, локальных для вычислительного устройства при выполнении подсчета числа наступлений заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства. В качестве конкретного примера, заданное событие вычислительного устройства может включать в себя событие кеша данных, такое как неудачное обращение в кеш или удачное обращение в кеш. Как отмечено, сбор может быть инициирован путем выполнения команды инициирования инструментального оснащения для временных промежутков, и по меньшей мере один из процессов подсчета и сохранения может быть инициирован путем выполнения команды сохранения счетчиков инструментального оснащения для временных промежутков.
Средство инструментального оснащения для временных промежутков, когда оно инсталлировано, предоставляет управляющей программе, такой как операционная система, возможность измерения числа некоторых событий вычислительного устройства (таких как события CPU), происходящих на протяжении двух интервалов выполнения программы во временном промежутке. Средство инструментального оснащения для временных промежутков (TSI) включает в себя повторяющийся с заданным интервалом импульс, локальный для каждого вычислительного устройства, несколько TSI счетчиков, локальных для каждого вычислительного устройства, несколько пар журналов счетчиков TSI для всех TSI счетчиков, локальных для каждого вычислительного устройства. Когда инструментальное оснащение для временных промежутков является активным на вычислительном устройстве, вычислительное устройство периодически перезапускает подсчет числа событий. Вычислительное устройство имеет возможность поддержки истории подсчитываемых событий, произошедших во время, например, первоначального и наиболее недавнего завершенного интервалов выполнения во временном промежутке. Зарегистрированные и сохраненные значения счетчиков временного промежутка упоминаются в настоящем документе как журналы счетчиков TSI. Как отмечено, инструментальное оснащение для временных промежутков может быть активировано при помощи команды инициирования инструментального оснащения для временных промежутков, а результаты измерений могут быть получены при помощи команды сохранения счетчиков инструментального оснащения для временных промежутков.
В одном или нескольких вариантах осуществления предоставленные посредством средства инструментального оснащения для временных промежутков данные измерений могут быть использованы для статистического сравнения соотнесенных производительности характеристик, полученных на протяжении двух отдельных интервалов выполнения блока рабочей задачи во временном промежутке выполнения посредством PU.
Фиг. 3 изображает один вариант осуществления обработки, согласно одному или нескольким аспектам настоящего изобретения, Как показано, обработка может включать в себя получение информации (такой как описанная в настоящем документе) инструментального оснащения для временных промежутков для вычислительного устройства на протяжении выполнения 300. Информация инструментального оснащения для временных промежутков затем может быть использована, например, посредством операционной системы или планировщика рабочей нагрузки для регулирования производительности вычислительного устройства, например, путем перепланирования присваивания блоков рабочих задач вычислительному устройству 310.
Фиг. 4А изображает один пример команды инициирования инструментального оснащения для временных промежутков 400 (TSION). Как показано, команда включает в себя поле 401 кода операции (OPCODE), указывающее на инициирование инструментального оснащения для временных промежутков при функционировании.
Выполнение команды инициирования инструментального оснащения для временных промежутков в супервизорном режиме инициирует сбор данных инструментального оснащения для временных промежутков в вычислительном устройстве, которое может включать в себя, например:
• сброс TSI счетчиков к нулевым значениям,
• сброс TSI журналов счетчиков к шестнадцатеричному числу FFFFFFFF,
• запуск периодических интервалов инструментального оснащения для временных промежутков,
• запуск подсчета каждого наступления заданного события вычислительного устройства в соответствующем счетчике TSI.
В одном или нескольких вариантах осуществления условный код остается неизменным.
После завершения первого интервала, каждое значение счетчика TSI регистрируют и локально сохраняют в соответствующем счетчику TSI журнале первого интервала, вариант осуществления которого показан на фиг. 4С, где журналы 420 первого интервала счетчика TSI находятся на левой стороне структуры данных. Впоследствии, счетчики TSI могут быть сброшены к нулевым значениям, и счетчики TSI продолжают подсчет соответствующих событий вычислительного устройства. После завершения какого-либо последующего интервала, каждое значение счетчика TSI может быть зарегистрировано и локально сохранено в соответствующем журнале 421 последнего интервала счетчика TSI, показанном на фиг. 4В. После чего, счетчики TSI вновь сбрасывают к нулевым значениям, и счетчики TSI продолжают подсчет соответствующих событий CPU.
Продолжительность интервала TCI может быть представлена машинозависимым числом циклов вычислительного устройства, которое может быть выявлено по номеру версии инструментального оснащения для временных промежутков (TSIVN) 422, записанному, например, в структуре данных на фиг. 4В. Как понятно специалистам в данной области техники, различные вычислительные машины могут функционировать с различным числом циклов, и/или различные события вычислительного устройства могут быть измерены в зависимости от номера версии TSI.
Число контролирующих развитие событий вычислительного устройства счетчиков TSI может варьироваться, например, от 1 до 7, в одном или нескольких вариантах осуществления. Число счетчиков TSI может быть машинозависимым. Также может быть машинозависимым и контролируемое каждым счетчиком TSI событие вычислительного устройства. Опять-таки, зависящие от модели характеристики инструментального оснащения для временных промежутков могут быть выявлены посредством номера версии 422 инструментального оснащения для временных промежутков (фиг. 4В).
В одном или нескольких вариантах осуществления счетчики TSI могут быть представлены 32 битами (только в качестве одного примера). Каждый счетчик TSI имеет возможность регистрации измеренных значений в журнале первого интервала на 32 бита 420 (фиг. 4В) и в журнале последнего интервала на 32 бита 421 при отмене реализации позиции бита 0 в любом счетчике TSI. В одном или нескольких вариантах осуществления счетчики TSI имеют возможность подсчета событий вычислительного устройства в супервизорном режиме и в задачном режиме. На протяжении повторного выполнения операции вычислительным устройством и сброса вычислительного устройства, в одном варианте осуществления, счетчики TSI могут быть сброшены к 0, журналы счетчиков TSI могут быть сброшены, например, к шестнадцатеричному числу FFFFFFFF, и никакой счетчик временного промежутка не получает приращения до успешного завершения последующей команды инициирования инструментального оснащения для временных промежутков. Распознанные вычислительным устройством разнообразные условия могут временно предотвращать или прерывать измерения TSI, также эти условия могут привести к сбросу журнала счетчика TSI к шестнадцатеричному числу FFFFFFFF. Один вариант осуществления команды сохранения счетчиков инструментального оснащения для временных промежутков (STSIC) 410 изображен на фиг. 4Б. Как показано, команда может иметь несколько полей, и поле может иметь связанный с ним нижний индекс. Связанный с полем команды нижний индекс обозначает операнд, к которому применяют поле. Например, связанный с В2 нижний индекс 2 обозначает, что содержимое заданного в В2 регистра связано со вторым операндом.
В качестве примера, команда 410 включает в себя поле 411 кода операции (OPCODE), которое может указывать на операцию сохранения инструментального оснащения для временных промежутков, основное поле (В2) 412 и поле (D2) смещения 413. Поле В2 412 может указывать на регистр, содержимое которого должно быть добавлено к значению, заданному в D2 413, для предоставления местоположения второго операнда, идентифицирующего адрес, по которому должна быть сохранена информация инструментального оснащения для временных промежутков. В одном или нескольких вариантах осуществления поля могут быть отдельными и независимыми от друг друга, однако, в других вариантах осуществления, более одного поля могут быть объединены друг с другом. Хотя описаны различные поля и регистры, один или несколько аспектов настоящего изобретения могут использовать другие, дополнительные поля или регистры, или меньшее их число, или другие размеры полей или регистров и т.д. Являются возможными разнообразные изменения. Например, вместо заданных в явном виде регистров или полей команды могут быть использованы неявно задаваемые регистры.
При функционировании информация TSI размещена в местоположении второго операнда. В одном варианте осуществления, второй операнд может иметь длину в восемь двойных слов. В качестве примера, условный код может оставаться неизменным. Дополнительная информация относительно команды приведена ниже.
Выполнение команды сохранения счетчиков инструментального оснащения для временных промежутков (STSIC), например, в супервизорном режиме, сохраняет информацию TSI в виде блока в памяти (называемого блоком данных STSIC в памяти или структурой данных (как показано на фиг. 4В) в местоположении второго операнда команды STSIC. Информация TSI и блок данных STSIC в памяти могут включать в себя номер версии 422 TSI, а также требуемое число журналов 420, 421 первых и последних интервалов счетчиков TSI, причем 7 счетчиков (С1…С7), а также журналы первых и последних интервалов изображены исключительно в качестве примера.
Когда число поддерживаемых на конкретной машине счетчиков TSI составляет менее 7, как обозначено TSIVN 422, журналы первых и последних интервалов счетчиков TSI в составе блока данных STSIC в памяти, или структуры данных, связанные с неподдерживаемыми счетчиками TSI, могут быть сохранены, например, с помощью значения шестнадцатеричного числа FFFFFFFF. Для 64 байтов блока данных STSIC в памяти могут быть распознаны исключения по доступу.
В случае выполнения команды STSIC перед завершением первого интервала TSI, журналы первых и последних интервалов счетчиков TSI могут содержать, например, значение шестнадцатеричного числа FFFFFFFF.
В случае выполнения команды STSIC перед завершением второго интервала TSI, журналы последних интервалов счетчиков TSI могут содержать, например, значение шестнадцатеричного числа FFFFFFFF.
Как отмечено, зависимые от модели характеристики инструментального оснащения для временных промежутков могут быть выявлены посредством номера версии (TSIVN) 422 инструментального оснащения для временных промежутков, который, как отмечено, может указывать интервал TSI (число циклов CPU), а также подлежащие контролю события CPU.
В одном или нескольких вариантах осуществления события вычислительного устройства, подсчитываемые на протяжении различных интервалов выполнения во временном промежутке вычислительного устройства, могут включать в себя события кеша, такие как события кеша данных. Например, могут быть подсчитаны неудачные обращения в кеш данных или удачные обращения в кеш данных. В одном или нескольких вариантах осуществления подсчитываемые события вычислительного устройства могут включать в себя неудачные обращения в кеш данных L1, неудачные обращения в кеш данных L2, удачные обращения в кеш данных L2 в первом квартиле, удачные обращения в кеш данных L2 во втором квартиле, удачные обращения в кеш данных L2 в третьем квартиле, удачные обращения в кеш данных L2 в четвертом квартиле, удачные обращения в совместно используемый кеш за данными L3, или неудачные обращения в совместно используемый кеш за данными L3.
Следует обратить внимание на то, что в одном или нескольких вариантах осуществления управляющая программа может быть осведомлена о различных прерываниях, которые могут произойти между инициацией сбора данных TSI и извлечением результатов измерения TSI, которые, возможно, могут привести к ошибочной интерпретации результатов. Выполняющая команду STSIC программа имеет возможность распознавания неполного или прерванного измерения TSI, и тем самым, непригодного результата, путем проверки поддерживаемого журнала последнего интервала счетчика TSI на значение, например, шестнадцатеричного числа FFFFFFFF.
Следует обратить внимание также на то, что продолжительность интервала TSI может быть измерена в виде числа циклов вычислительного устройства, но не в виде промежутка времени, что обеспечивает большую преемственность для нескольких моделей, работающих с различными частотами на различных уровнях масштабирования производительности. В одном или нескольких вариантах осуществления продолжительность интервала TSI может быть задана для машины таким образом, что никакой счетчик TSI не требует для представления любого измеренного значения более 32 бит. С целью упрощения машинной реализации, возможные переполнения счетчика TSI могут не подвергаться отображению.
Фиг. 5А-5В показывают один пример возможного применения средства инструментального оснащения для временных промежутков, согласно одному или нескольким аспектам настоящего изобретения. В качестве примера, фиг. 5А изображает очередь диспетчеризации, включающую в себя четыре блока рабочей задачи, имеющие идентификаторы 1, 2, 3, 4 блоков рабочих задач, которые запланированы для обработки в вычислительном устройстве с идентификатором А. В этом примере, идентификатор 2 блока рабочей задачи отмечен как нуждающийся в больших ресурсах кеша данных (Dcache).
Фиг. 5Б изображает один пример исходного плана диспетчеризации, в котором очередь диспетчеризации чередует блоки рабочей задачи с идентификаторами 1, 2, 3, 4 в последовательных временных промежутках 510 на вычислительном устройстве А. В качестве примера, интенсивность неудачных обращений в «холодный» кеш данных и интенсивность неудачных обращений в «теплый» кеш данных подсчитывают посредством средства инструментального оснащения для временных промежутков. Подсчитываемая (или измеряемая) информация инструментального оснащения для временных промежутков может включать в себя любые метрики кеша вычислительного устройства на протяжении первого и последнего периодов во временном промежутке или времени диспетчеризации для каждого блока рабочей задачи, такой как блок рабочей задачи с идентификаторами 1, 2, 3, 4. В показанном на фиг.5Б примере, в первом интервале 511 выполнения в составе расширенного временного промежутка 510, интенсивность неудачных обращений в «холодный» кеш данных равна 1 из 20, в то время как в последнем интервале 512 выполнения для временного промежутка 510 она равна 1 из каждых 50, что означает более эффективное использование кеша в последнем интервале выполнения, чем в первом интервале выполнения. Прежде всего, в начале временного промежутка, когда кеш данных является «холодным» для действующего блока рабочей задачи (например, с идентификатором 1) на вычислительном устройстве А, одна из каждых 20 команд имеет результатом неудачное обращение в кеш данных, в то время, как позднее во временном промежутке, например, в последнем интервале 512 выполнения, интенсивность неудачных обращений в кеш данных составляет 1 из каждых 50 команд.
Путем подсчета и отслеживания заданного события вычислительного устройства (например, интенсивности неудачных обращений в кеш данных) для каждого блока рабочей задачи в их соответствующих временных промежутках, и прежде всего в первом и последнем интервале 511, 512 выполнения, полученная в результате информация инструментального оснащения для временных промежутков может быть использована, например, для изменения плана диспетчеризации, как показано на фиг. 5В. В этом примере, блоки рабочих задач с идентификатором 1 и идентификатором 2 сгруппированы в один набор, а блоки рабочих задач с идентификатором 3 и идентификатором 4 сгруппированы в другой набор посредством, например, менеджера по рабочей нагрузке или планировщика. Как показано на фиг. 5В, путем подсчета интенсивности неудачных обращений в кеш данных в первом и последнем интервалах 511, 512 выполнения в составе временного промежутка 510, измеренные метрики кеша оказались улучшенными для выполняемой на вычислительном устройстве А рабочей нагрузки с идентификатором 1, начиная с интенсивности непопаданий в «холодной» кеш данных, равной 1 из каждых 35 команд, и заканчивая интенсивностью непопаданий в «теплый» кеш данных, равной 1 из каждых 50 команд. В этом примере, следует отметить, что время между моментами time = 0 и time = Т представляет собой совокупный промежуток времени, который каждый блок рабочей задачи занимает для ее выполнения, и который является одинаковым при сравнении между исходным планом диспетчеризации на фиг. 5Б и измененным на фиг. 5В.
Как показано на фиг. 6А, раскрытое в настоящем документе средство инструментального оснащения для временных промежутков предусматривает обработку, включающую в себя сбор (600) информации инструментального оснащения для временных промежутков для вычислительного устройства на протяжении выполнения. Сбор может включать в себя: по меньшей мере, частичный, подсчет числа наступлений заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства, и сохранение числа подсчитываемых событий вычислительного устройства, наступающих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке. Первый интервал выполнения является более ранним во временном промежутке, чем второй интервал выполнения, причем подсчет событий вычислительного устройства обеспечивает регулирование производительности вычислительного устройства.
Временной промежуток может быть непрерывным периодом времени выполнения вычислительного устройства, а заданное событие вычислительного устройства может быть представлено событием кеша (605) или включать в себя таковое. Вычислительное устройство чередует обработку нескольких различных блоков рабочих задач в течение нескольких непрерывных временных промежутков, и на протяжении единственного временного промежутка вычислительное устройство обрабатывает единственный блок рабочих задач из числа нескольких различных блоков рабочих задач (610).
В качестве примера, как показано на фиг. 6Б, первый интервал выполнения может включать в себя начальный интервал выполнения во временном промежутке, а второй интервал выполнения может включать в себя наиболее недавно завершенный интервал выполнения во временном промежутке (615). В одном или нескольких вариантах осуществления первый и второй интервалы выполнения имеют равную продолжительность, причем второй интервал выполнения может включать в себя последний интервал времени выполнения во временном промежутке (620). Как показано, подсчет может включать в себя использование счетчиков инструментального оснащения для временных промежутков, локальных для вычислительного устройства при выполнении подсчета числа наступлений заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства (625). Заданное событие обработки может включать в себя событие кеша данных, выбранное из группы, состоящей из неудачного обращения в кеш и удачного обращения в кеш (630). В одном или нескольких вариантах осуществления сбор может быть инициирован путем выполнения команды инициирования инструментального оснащения для временных промежутков (635), а сохранение может быть инициировано путем выполнения команды сохранения счетчиков инструментального оснащения для временных промежутков (640).
Хотя предоставлены различные примеры, изменения являются возможными без отступления от духа заявленных аспектов. Например, значения, включенные в состав используемых командой регистров и/или полей, в других вариантах осуществления могут быть расположены в других местоположениях, таких как местоположения памяти, и т.д. Являются возможными самые разнообразные вариации.
Один или несколько аспектов могут относиться к облачным вычислениям. Заранее подразумевается, что, хотя настоящее раскрытие включает в себя подробное описание облачных вычислений, реализация изложенных в настоящем документе идей не ограничивается окружением облачных вычислений. Скорее, варианты осуществления настоящего изобретения могут быть реализованы совместно с любым другим типом вычислительного окружения, известного в настоящее время или разработанным позднее.
Облачные вычисления являются моделью предоставления услуг для обеспечения возможности удобного, в нужный момент времени, сетевого доступа к совместно используемому комплексу конфигурируемых вычислительных ресурсов (например, сетей, сетевых пропускных способностей, серверов, вычислительных мощностей, памяти, запоминающих устройств, приложений, виртуальных машин и услуг), который может быть быстро предоставлен и передан с минимальными управленческими затратами или взаимодействием с поставщиком услуг. Эта облачная модель может включать в себя по меньшей мере пять характеристик, по меньшей мере три модели услуг и по меньшей мере четыре модели развертывания.
Характеристики представлены следующим образом.
Самообслуживание в нужный момент времени: потребитель облачных услуг может в одностороннем порядке обеспечивать вычислительные возможности, такие как время сервера и ресурсы сетевого хранения, по мере необходимости автоматически, без необходимости в человеческом взаимодействии с провайдером услуги.
Широкий доступ к сети: возможности являются доступными по сети, а получение доступа производится посредством стандартных механизмов, что способствует использованию разнородных платформ тонкого или толстого клиента (например, мобильных телефонов, ноутбуков и PDA (личных электронных секретарей)).
Объединение ресурса: вычислительные ресурсы провайдера объединены для обслуживания нескольких потребителей, использующих модель мультиарендатора, причем различные физические и виртуальные ресурсы динамично присваиваются и повторно присваиваются согласно потребности. Смысл независимости от местоположения состоит в том, что потребитель, в большинстве случаев, не имеет никакого контроля или знания относительно точного местоположения предоставляемых ресурсов, но может быть способным к определению местоположения на более высоком уровне абстракции (например, страна, регион или центр обработки данных).
Быстрая адаптационная способность: инструменты могут быть предоставлены быстрым и адаптивным способом, в некоторых случаях автоматически, для быстрого горизонтального масштабирования с увеличением производительности, и быстро возвращены системе для быстрого горизонтального масштабирования с уменьшением производительности. Для потребителя, доступные к предоставлению инструменты зачастую представляются неограниченными, и могут быть приобретены в любом объеме в любое время.
Измеренная услуга: облачные системы автоматически управляют использованием ресурса и оптимизируют его путем усиления измерительного инструментария на некотором уровне абстракции, соответствующем типу услуги (например, сохранения, обработки, пропускной способности и учетным записям активного пользователя). Использование ресурсов может быть подвергнуто мониторингу, управлению и протоколированию, что обеспечивает прозрачность как для провайдера, так и для потребителя используемой услуги.
Модели услуги представлены следующим образом.
Программное обеспечение как услуга (SaaS): потребителю предоставляется инструмент для использования приложений провайдера, работающих на облачной инфраструктуре. Приложения являются доступными с различных клиентских устройств через интерфейс тонкого клиента, такой как веб-браузер (например, интернет-почта). Потребитель не администрирует и не управляет базовой облачной инфраструктурой, содержащей сеть, серверы, операционные системы, запоминающие устройства или даже индивидуальные прикладные инструменты, за возможным исключением ограничений по настройке параметров конфигурации специфических для пользователя приложений.
Платформа как услуга (PaaS): потребителю предоставляется инструмент для развертывания на облачной инфраструктуре созданных или полученных потребителем приложений, созданных с помощью поддерживаемых провайдером языков программирования и программных средств. Потребитель не администрирует и не управляет базовой облачной инфраструктурой, содержащей сеть, серверы, операционные системы или запоминающие устройства, но управляет развертываемыми приложениями и, возможно, приложением, размещающим настройки среды.
Инфраструктура как услуга (IaaS): потребителю предоставляется инструмент для обеспечения обработки, хранения, сетей и других фундаментальных вычислительных ресурсов, с помощью которого потребитель может разворачивать и выполнять произвольное программное обеспечение, которое может включать в себя операционные системы и приложения. Потребитель не администрирует и не управляет базовой облачной инфраструктурой, но управляет операционными системами, запоминающими устройствами, развертываемыми приложениями и, возможно, имеет ограниченное управление выбором сетевых компонентов (например, межсетевых защитных экранов хоста).
Модели развертывания представлены следующим образом.
Частное облако: облачная инфраструктура действует исключительно для организации. Оно может управляться посредством организации или третьей стороны, и может быть реализовано внутри или вовне организации.
Коллективное облако: облачную инфраструктуру совместно используют несколько организаций и поддерживают особое сообщество, которое имеет совместные интересы (например, главная цель работы, требования к защите, политика и соображения по контролю за соблюдением установленных требований). Оно может управляться посредством организации или третьей стороны, и может быть реализовано внутри или вовне организации.
Открытое облако: облачная инфраструктура сделана доступной для широкой публики или группы крупной отрасли, и принадлежит продающей облачные услуги организации.
Гибридное облако: облачная инфраструктура является сочетанием двух или более облаков (частного, коллективного или отрытого), которые остаются отличными от других объектами, но связаны друг с другом посредством стандартизированной или проприетарной технологии, обеспечивающей для данных и приложений высокую мобильность (например, временное использование ресурсов открытого облака для выравнивания нагрузки между облаками).
Облачное вычислительное окружение является услугой, ориентированной с вниманием на бесструктурность, слабую связность, модульный принцип и семантическую функциональную совместимость. В основе облачных вычислений находится инфраструктура, содержащая сеть из связанных узлов. Один такой узел является узлом 10, изображенным на фиг. 1А.
Вычислительный узел 10 является только одним примером подходящего узла облачных вычислений, и не предназначен для предположения какого-либо ограничения относительно объема использования или функциональности вариантов осуществления описанного в настоящем документе изобретения. В любом случае, узел 10 облачных вычислений способен к своей реализации и/или к выполнению любой из сформулированных выше функциональностей.
При рассмотрении теперь фиг. 7, изображено показательное облачное вычислительное окружение 50. Как показано, облачное вычислительное окружение 50 содержит один или несколько узлов 10 облачных вычислений, с помощью которых могут сообщаться используемые облачными потребителями локальные вычислительные устройства, такие как, например, персональный цифровой секретарь (PDA) или сотовый телефон 54А, настольный компьютер 54В, портативный компьютер 54С, и/или автомобильная компьютерная система 54N. Узлы 10 могут сообщаться друг с другом. Они могут быть сгруппированы (не показано) физически или виртуально, в одну или несколько сетей, таких как частное, коллективное, открытое или гибридное облака, как описано выше, или в комбинацию из них. Это позволяет облачному вычислительному окружению 50 предлагать инфраструктуру, платформы и/или программное обеспечение в качестве услуг, для получения которых облачный потребитель не должен поддерживать ресурсы на локальном вычислительном устройстве. Подразумевается, что показанные на фиг. 7 типы вычислительных устройств 54A-N предназначены исключительно для разъяснений и, что вычислительные узлы 10 и облачное вычислительное окружение 50 являются способными к сообщению с любым типом компьютеризированного устройства по любому типу сетевого и/или адресуемого через сеть присоединения (например, с помощью веб-браузера).
При рассмотрении теперь фиг. 8, показан ряд функциональных уровней абстракции, предоставляемых облачным вычислительным окружением 50 (фиг. 7). Заранее подразумевается, что компоненты, уровни и функции, показанные на фиг. 8, предназначены исключительно для разъяснений, и ими не ограничены варианты осуществления изобретения. Как изображено, предоставлены следующие уровни и соответствующие функции:
Аппаратный и программный уровень 60 включает в себя аппаратные и программные компоненты. Примеры аппаратных компонентов включают в себя мэйнфреймы 61, основанные на архитектуре RISC (Компьютер с сокращенной системой команд) серверы 62, серверы 63, сверхкомпактные серверы 64, запоминающие устройства 65, а также сети и сетевые компоненты 66. В некоторых вариантах осуществления компоненты программного обеспечения включают в себя программное обеспечение сервера сетевого приложения 67 и программное обеспечение базы данных 68.
Уровень 70 виртуализации предоставляет уровень абстракции, с которого могут быть предоставлены следующие примеры виртуальных объектов: виртуальные серверы 71, виртуальная память 72, виртуальные сети 73, включая сюда виртуальные частные сети, виртуальные приложения и операционные системы 74, а также виртуальные клиенты 75.
В одном примере, уровень 80 управления может предоставлять описанные ниже функции. Функция 81 выделения ресурсов предоставляет динамическую поставку вычислительных ресурсов и других ресурсов, использующихся для выполнения задач в облачном вычислительном устройстве. Функция 82 измерения и оценки предоставляет отслеживание затрат по мере использования ресурсов в облачном вычислительном устройстве, а также выписку или выставление счетов за потребление этих ресурсов. В одном примере, эти ресурсы могут содержать лицензии прикладного программного обеспечения. Функция безопасности предоставляет проверку идентификационных данных для облачных потребителей и задач, а также защиту данных и других ресурсов. Функция 83 пользовательского портала предоставляет доступ к облачному вычислительному окружению для потребителей и системных администраторов. Функция 84 управления уровнем услуг предоставляет распределение ресурсов облачных вычислений и управление ими таким образом, что удовлетворяются необходимые уровни услуг. Функция 85 планирования и выполнения Соглашения об уровне услуг (SLA) предоставляет предварительную подготовку и приобретение ресурсов облачных вычислений, для которых в будущем ожидается соответствие требованиям согласно SLA.
Уровень 90 рабочих заданий предоставляет примеры функциональности, для которой может быть использовано окружение облачных вычислений. Примеры рабочих заданий и функций, которые могут быть предоставлены на этом уровне, включают в себя: построение соответствий и передвижение 91 между объектами в базах данных, разработку программного обеспечения и управление его жизненным циклом 92, предоставление 93 образования в виде виртуальной аудитории, обработку 94 анализа данных, а также обработку 96 транзакций.
Настоящее изобретение может быть представлено системой, способом и/или компьютерным программным продуктом на любом возможном уровне интеграции в плане технической детализации. Компьютерный программный продукт может включать в себя машиночитаемый информационный носитель (или носители), имеющий на нем машиночитаемые программные команды для принуждения процессора к выполнению аспектов настоящего изобретения.
Машиночитаемый информационный носитель может быть представлен материальным устройством, которое способно удерживать и сохранять команды для использования посредством устройства выполнения команд. Машиночитаемый информационный носитель может быть представлен, например, в том числе, но не ограничиваясь, устройством электронной памяти, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией из вышеупомянутого. Неисчерпывающий список более конкретных примеров машиночитаемых информационных носителей включает в себя следующее: портативная компьютерная дискета, жесткий диск, оперативная память (RAM), постоянная память (ROM), стираемая программируемая постоянная память (EPROM или флэш-память), статическая оперативная память (SRAM), переносной компакт-диск для однократной записи данных (CD-ROM), цифровой универсальный диск (DVD), карта памяти, гибкий диск, механически закодированное устройство, такое как перфокарты или выступающие структуры в канавке с записанными на них командами, а также любая подходящая комбинация из вышеупомянутого. Машиночитаемый информационный носитель, как он рассматривается в настоящем документе, не подлежит истолкованию в качестве представленного преходящими сигналами как таковыми, такими как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся через волновод или другие среды передачи (например, проходящие через волоконно-оптический кабель световые импульсы), или передаваемые через провода электрические сигналы.
Описанные в настоящем документе машиночитаемые программные команды могут быть загружены в соответствующие вычислительные/обрабатывающие устройства с машиночитаемого информационного носителя или во внешний компьютер или во внешнее устройство хранения через сеть, например Интернет, локальную сеть, глобальную сеть и/или беспроводную сеть. Сеть может содержать медные кабели передачи, волокна оптической передачи, беспроводную передачу, маршрутизаторы, брандмауэры, переключения, шлюзы и/или граничные серверы. Карта сетевого адаптера или сетевой интерфейс в каждом вычислительном/обрабатывающем устройстве получает машиночитаемые программные команды из сети, и направляет машиночитаемые программные команды для сохранения в машиночитаемый информационный носитель в соответствующем вычислительном/обрабатывающем устройстве.
Машиночитаемые программные команды для выполнения операций настоящего изобретения могут быть представлены командами ассемблера, командами архитектуры системы команд (ISA), машинными командами, машинно-зависимыми командами, микрокодом, командами встроенного программного обеспечения, присваивающими значение состоянию данными, конфигурационными данными для интегральной схемотехники, или иным исходным кодом или объектным кодом, записанным на любой комбинации из одного или нескольких языков программирования, включая сюда объектно-ориентированные языки программирования, такие как Smalltalk, С++ и т.п., а также языки процедурного программирования, такие как язык программирования «С» или подобные языки программирования. Машиночитаемые программные команды могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя, как автономный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере или полностью на удаленном компьютере или сервере. В последнем сценарии удаленный компьютер может быть присоединен к компьютеру пользователя через любой тип сети, включая сюда локальную сеть (LAN) или глобальную сеть (WAN), или присоединение может быть сделано к внешнему компьютеру (например, через Интернет с использованием Интернет-провайдера). В некоторых вариантах осуществления, электронные схемы, включающие в себя, например, программируемые логические схемы, программируемые на месте вентильные матрицы (FPGA) или программируемые логические матрицы (PLA) могут выполнять машиночитаемые программные команды посредством использования информации о состоянии машиночитаемых программных команд для настройки электронной схемы с целью выполнения аспектов настоящего изобретения.
Аспекты настоящего изобретения описаны в настоящем документе с отсылками на иллюстрации в виде блок-схем и/или блок-диаграмм для способов, устройств (систем) и компьютерных программных продуктов согласно вариантам осуществления изобретения. Подразумевается, что каждый блок иллюстраций в виде блок-схем и/или блок-диаграмм, а также комбинации блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, могут быть реализованы посредством машиночитаемых программных команд.
Такие машиночитаемые программные команды могут быть предоставлены процессору универсального компьютера, специализированного компьютера или другого программируемого устройства обработки данных для образования машины таким образом, что выполняющиеся посредством процессора компьютера или другого программируемого устройства обработки данных команды создают средства для реализации функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы. Такие машиночитаемые программные команды также могут быть сохранены в машиночитаемом информационном носителе, который может управлять компьютером, программируемым устройством обработки данных и/или другими устройствами для их функционирования особым способом таким образом, что сохраняющий на нем команды машиночитаемый информационный носитель представляет собой изделие, содержащее команды, которые реализуют аспекты функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы.
Машиночитаемые программные команды могут также быть загружены в компьютер, другое программируемое устройство обработки данных или другое устройство для принуждения к выполнению на компьютере, другом программируемом устройстве или другом устройстве серии эксплуатационных этапов для получения такого компьютерно-реализованного процесса, что выполняемые на компьютере, другом программируемом устройстве или другом устройстве инструкции реализуют функции/действия, заданные в блоке или блоках блок-схемы и/или блок-диаграммы.
Блок-схемы и блок-диаграммы на чертежах показывают архитектуру, функциональность и функционирование возможных реализаций систем, способов и компьютерных программных продуктов согласно различным вариантам осуществления настоящего изобретения. В этом отношении каждый блок в блок-схемах или блок-диаграммах может представлять модуль, сегмент или участок команд, который содержит одну или несколько исполнимых команд для реализации указанной логической функции (функций). В некоторых альтернативных вариантах осуществления, указанные в блоках функции могут осуществляться в порядке, отличном от приведенного на чертежах. Например, два блока, показанные по очереди, могут, фактически, быть выполнены по существу одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от предусмотренной к выполнению функциональности. Необходимо также отметить, что каждый блок на иллюстрациях в виде блок-схем и/или блок-диаграмм, а также в комбинациях блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, может быть реализован посредством основанных на аппаратных средствах систем особого назначения, которые выполняют указанные функции или действия или выполняют комбинации аппаратных и компьютерных команд особого назначения.
В дополнение к вышеупомянутому, один или несколько аспектов могут быть предоставлены, предложены, развернуты, управляемы, обслуживаемы и т.д. поставщиком услуг, предлагающим управление окружениями заказчика. Например, поставщик услуг может создавать, обслуживать, поддерживать и т.д. машинный код и/или компьютерную инфраструктуру, выполняющую один или несколько аспектов для одного или нескольких клиентов. В свою очередь, поставщик услуг может получать оплату от клиента в рамках соглашения о подписке и/или о сборах, в качестве примеров. Дополнительно или альтернативно, поставщик услуг может получать оплату от продажи рекламного содержимого одному или нескольким третьим лицам.
В одном аспекте приложение может быть развернуто для выполнения одного или нескольких предпочтительных вариантов осуществления. В качестве примера, развертывание приложения предусматривает обеспечение компьютерной инфраструктуры, действующей для выполнения одного или нескольких вариантов осуществления.
В качестве другого аспекта, может быть развернута вычислительная инфраструктура, содержащая в вычислительной системе интегрирующий машиночитаемый код, в которой код, в сочетании с вычислительной системой, способен к выполнению одного или нескольких вариантов осуществления.
В качестве еще одного аспекта, может быть предоставлен способ интеграции содержащей интегрирующий машиночитаемый код вычислительной инфраструктуры в компьютерную систему. Компьютерная система содержит машиночитаемый носитель, который компьютерный носитель содержит один или несколько вариантов осуществления. Код в сочетании с компьютерной системой способен к выполнению одного или нескольких вариантов осуществления.
Хотя различные варианты осуществления описаны выше, они являются только примерами. Например, вычислительные окружения другой архитектуры могут быть использованы для охвата и использования одного или нескольких вариантов осуществления. Кроме того, могут быть использованы различные команды, форматы команд, поля команд и/или значения команд. Являются возможными разнообразные изменения.
Кроме того, могут быть использованы и оказаться выгодными другие типы вычислительных окружений. В качестве примера, является применимой подходящая для сохранения и/или выполнения программного кода система обработки данных, которая включает в себя по меньшей мере два процессора, соединенных прямо или косвенно через системную шину с элементами памяти. Элементы памяти включают в себя, например, локальную память, используемую в процессе фактического выполнения программного кода, запоминающее устройство большого объема и кеш-память, которая предоставляет временное сохранение, по меньшей мере, части программного кода с целью уменьшения числа выборок из запоминающего устройства большого объема в процессе выполнения.
Устройства ввода-вывода или устройства I/O (в том числе, но не ограничиваясь, клавиатуры, дисплеи, позиционирующие устройства, DASD (запоминающее устройство прямого доступа), устройство записи на ленту, CD, DVD, карты флэш-памяти и другие носители памяти и т.д.) могут быть соединены с системой или непосредственно или через переходные контроллеры I/O. С системой также могут быть соединены сетевые адаптеры для предоставления системе обработки данных возможности установления соединения с другими системами обработки данных или с удаленными принтерами или с запоминающими устройствами посредством переходных частных сетей или сетей общего пользования. Модемы, кабельные модемы и платы Ethernet являются всего несколькими примерами из числа доступных типов сетевых адаптеров.
Используемая в настоящем документе терминология служит исключительно целям описания конкретных вариантов осуществления и не предназначается для ограничения изобретения. При использовании в настоящем документе, формы единственного числа предназначены для включения в себя также и форм множественного числа, если только контекст не указывает на иное недвусмысленным образом. Кроме того, подразумевается, что термины «содержит» и/или «содержащий» при их использовании в данном техническом описании задают присутствие заявленных признаков, целочисленных переменных, этапов, операций, элементов и/или компонентов, но не исключают присутствия или добавления одного или нескольких других признаков, целочисленных переменных, этапов, операций, элементов, компонентов и/или образованных ими групп.
Соответствующие структуры, материалы, действия и эквиваленты всех средств или этапов, равно как функциональные элементы в пунктах формулы изобретения ниже, если вообще есть в наличии, предназначаются для включения в себя любой структуры, материала или действия для выполнения функции в сочетании с другими требуемыми элементами, как конкретным образом заявлено. Описание одного или нескольких вариантов осуществления представлено в целях иллюстрации и описания, но не предназначается для полного охвата или ограничения изобретения в заявленном виде. Многие модификации и изменения являются очевидными для средних специалистов в области техники. Вариант осуществления был выбран и описан с целью наилучшего объяснения различных аспектов и практического применения, а также для обеспечения другим средним специалистам в области техники возможности понимания различных вариантов осуществления с различными модификациями, как они подходят для конкретно рассматриваемого использования.
Claims (34)
1. Машиночитаемый информационный носитель, считываемый по меньшей мере одним устройством обработки данных и хранящий команды для обеспечения обработки в вычислительном окружении, при выполнении которых осуществляется способ, включающий:
- сбор информации инструментального оснащения для временных промежутков для вычислительного устройства на протяжении выполнения, причем вычислительное устройство чередует обработку нескольких различных блоков рабочих задач в течение нескольких непрерывных временных промежутков, и на протяжении временного промежутка вычислительным устройством обрабатывается один блок рабочих задач из числа нескольких различных блоков рабочих задач, причем сбор включает:
- разделение временного промежутка выполнения вычислительным устройством блока рабочих задач на несколько интервалов выполнения, включающих в себя первый интервал выполнения и второй интервал выполнения,
- по меньшей мере частичный подсчет числа наступления заданного события вычислительного устройства на протяжении первого интервала выполнения во временном промежутке выполнения вычислительного устройства и подсчет числа наступления заданного события вычислительного устройства на протяжении второго интервала выполнения во временном промежутке выполнения вычислительного устройства, причем первый интервал выполнения является более ранним во временном промежутке, чем второй интервал выполнения,
- сохранение подсчитываемых событий вычислительного устройства, происходящих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке, и
- использование подсчитываемых событий вычислительного устройства, происходящих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке, для регулирования плана обработки вычислительным устройством нескольких различных блоков рабочих задач.
2. Машиночитаемый информационный носитель по п. 1, причем временной промежуток является непрерывным периодом времени выполнения вычислительного устройства, а заданное событие вычислительного устройства содержит событие кеша.
3. Машиночитаемый информационный носитель по п. 2, причем первый интервал выполнения содержит начальный интервал выполнения во временном промежутке, а второй интервал выполнения содержит наиболее недавно завершенный интервал выполнения во временном промежутке, и причем первый интервал выполнения и второй интервал выполнения имеют равную продолжительность.
4. Машиночитаемый информационный носитель по п. 3, причем второй интервал выполнения содержит последний интервал выполнения во временном промежутке.
5. Машиночитаемый информационный носитель по п. 1, причем подсчет содержит использование счетчиков инструментального оснащения для временных промежутков, локальных для вычислительного устройства при выполнении подсчета числа наступлений заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства.
6. Машиночитаемый информационный носитель по п. 1, причем заданное событие вычислительного устройства содержит событие кеша данных, выбранное из группы, состоящей из неудачного обращения в кеш и удачного обращения в кеш.
7. Машиночитаемый информационный носитель по п. 1, причем сбор инициируется путем выполнения команды инициирования инструментального оснащения для временных промежутков.
8. Машиночитаемый информационный носитель по п. 1, причем сохранение инициируется путем выполнения команды сохранения счетчиков инструментального оснащения для временных промежутков.
9. Компьютерная система для обеспечения обработки в вычислительном окружении, содержащая память и взаимодействующий с памятью процессор, причем компьютерная система выполнена для осуществления способа, включающего:
- сбор информации инструментального оснащения для временных промежутков для вычислительного устройства на протяжении выполнения, причем вычислительное устройство чередует обработку нескольких различных блоков рабочих задач в течение нескольких непрерывных временных промежутков, и на протяжении временного промежутка вычислительным устройством обрабатывается один блок рабочих задач из числа нескольких различных блоков рабочих задач, причем сбор включает:
- разделение временного промежутка выполнения вычислительным устройством блока рабочих задач на несколько интервалов выполнения, включающих в себя первый интервал выполнения и второй интервал выполнения,
- по меньшей мере частичный подсчет числа наступления заданного события вычислительного устройства на протяжении первого интервала выполнения во временном промежутке выполнения вычислительного устройства и подсчет числа наступления заданного события вычислительного устройства на протяжении второго интервала выполнения во временном промежутке выполнения вычислительного устройства, причем первый интервал выполнения является более ранним во временном промежутке, чем второй интервал выполнения,
- сохранение подсчитываемых событий вычислительного устройства, происходящих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке, и
- использование подсчитываемых событий вычислительного устройства, происходящих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке, для регулирования плана обработки вычислительным устройством нескольких различных блоков рабочих задач.
10. Компьютерная система по п. 9, причем временной интервал является непрерывным промежутком времени выполнения вычислительного устройства, а заданное событие вычислительного устройства содержит событие кеша.
11. Компьютерная система по п. 10, причем первый интервал выполнения содержит начальный интервал выполнения во временном промежутке, а второй интервал выполнения содержит наиболее недавно завершенный интервал выполнения во временном промежутке, и причем первый интервал выполнения и второй интервал выполнения имеют равную продолжительность.
12. Компьютерная система по п. 11, причем второй интервал выполнения содержит последний интервал выполнения во временном промежутке.
13. Компьютерная система по п. 9, причем подсчет содержит использование счетчиков инструментального оснащения для временных промежутков, локальных для вычислительного устройства при выполнении подсчета числа наступления заданного события вычислительного устройства на протяжении временного промежутка выполнения вычислительного устройства.
14. Компьютерная система по п. 9, причем сбор инициируется путем выполнения команды инициирования инструментального оснащения для временных промежутков, а сохранение инициируется путем выполнения команды сохранения счетчиков инструментального оснащения для временных промежутков.
15. Компьютерно-реализуемый способ обеспечения обработки в вычислительном окружении, включающий:
- сбор информации инструментального оснащения для временных промежутков для вычислительного устройства на протяжении выполнения, причем вычислительное устройство чередует обработку нескольких различных блоков рабочих задач в течение нескольких непрерывных временных промежутков, и на протяжении временного промежутка вычислительным устройством обрабатывается один блок рабочих задач из числа нескольких различных блоков рабочих задач, причем сбор включает:
- разделение временного промежутка выполнения вычислительным устройством блока рабочих задач на несколько интервалов выполнения, включающих в себя первый интервал выполнения и второй интервал выполнения,
- подсчет числа наступления заданного события вычислительного устройства на протяжении первого интервала выполнения во временном промежутке выполнения вычислительного устройства и подсчет числа наступления заданного события вычислительного устройства на протяжении второго интервала выполнения во временном промежутке выполнения вычислительного устройства, причем первый интервал выполнения является более ранним во временном промежутке, чем второй интервал выполнения,
- сохранение подсчитываемых событий вычислительного устройства, происходящих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке, и
- использование подсчитываемых событий вычислительного устройства, происходящих на протяжении первого интервала выполнения во временном промежутке и второго интервала выполнения во временном промежутке, для регулирования плана обработки вычислительным устройством нескольких различных блоков рабочих задач.
16. Компьютерно-реализуемый способ по п. 15, причем временной интервал является непрерывным промежутком времени выполнения вычислительного устройства, а заданное событие вычислительного устройства содержит событие кеша.
17. Компьютерно-реализуемый способ по п. 16, причем первый интервал выполнения содержит начальный интервал выполнения во временном промежутке, а второй интервал выполнения содержит наиболее недавно завершенный интервал выполнения во временном промежутке, и причем первый интервал выполнения и второй интервал выполнения имеют равную продолжительность.
18. Компьютерно-реализуемый способ по п. 17, причем второй интервал времени выполнения содержит последний интервал выполнения во временном промежутке.
19. Компьютерно-реализуемый способ по п. 15, причем сбор инициируют путем выполнения команды инициирования инструментального оснащения для временных промежутков, а сохранение инициируют путем выполнения команды сохранения счетчиков инструментального оснащения для временных промежутков.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/402,412 US10303575B2 (en) | 2017-01-10 | 2017-01-10 | Time-slice-instrumentation facility |
US15/402,412 | 2017-01-10 | ||
PCT/EP2017/083139 WO2018130375A1 (en) | 2017-01-10 | 2017-12-15 | Time-slice-instrumentation facility |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2727070C1 true RU2727070C1 (ru) | 2020-07-17 |
Family
ID=60937716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2019102988A RU2727070C1 (ru) | 2017-01-10 | 2017-12-15 | Средство инструментального оснащения для временных промежутков |
Country Status (13)
Country | Link |
---|---|
US (1) | US10303575B2 (ru) |
EP (1) | EP3568762A1 (ru) |
JP (1) | JP7023283B2 (ru) |
KR (1) | KR102238191B1 (ru) |
CN (1) | CN110168503B (ru) |
AU (1) | AU2017392846B2 (ru) |
CA (1) | CA3037292A1 (ru) |
IL (1) | IL265555B (ru) |
MX (1) | MX2019012412A (ru) |
RU (1) | RU2727070C1 (ru) |
TW (1) | TWI663548B (ru) |
WO (1) | WO2018130375A1 (ru) |
ZA (1) | ZA201905199B (ru) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11165679B2 (en) | 2019-05-09 | 2021-11-02 | International Business Machines Corporation | Establishing consumed resource to consumer relationships in computer servers using micro-trend technology |
US10877866B2 (en) | 2019-05-09 | 2020-12-29 | International Business Machines Corporation | Diagnosing workload performance problems in computer servers |
US11182269B2 (en) | 2019-10-01 | 2021-11-23 | International Business Machines Corporation | Proactive change verification |
CN114185838A (zh) * | 2020-09-15 | 2022-03-15 | 阿里巴巴集团控股有限公司 | 片上系统和调节电压和频率的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4345309A (en) * | 1980-01-28 | 1982-08-17 | Digital Equipment Corporation | Relating to cached multiprocessor system with pipeline timing |
RU2260838C2 (ru) * | 2000-12-29 | 2005-09-20 | Интел Корпорейшн | Система и способ для предварительной выборки данных в кэш-памяти, основанной на интервале неудач |
US20110246995A1 (en) * | 2010-04-05 | 2011-10-06 | Oracle International Corporation | Cache-aware thread scheduling in multi-threaded systems |
RU2585968C2 (ru) * | 2012-03-16 | 2016-06-10 | Интернэшнл Бизнес Машинз Корпорейшн | Сбор сведений о ходе вычислений |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003006175A (ja) * | 2001-06-26 | 2003-01-10 | Hitachi Ltd | プロセス実行時のプログラム動作特性に基づくプロセススケジューリング方法及びこれを用いたプログラム及びデータ処理装置 |
US7221686B1 (en) | 2001-11-30 | 2007-05-22 | Meshnetworks, Inc. | System and method for computing the signal propagation time and the clock correction for mobile stations in a wireless network |
US6847905B2 (en) * | 2002-02-12 | 2005-01-25 | Tektronix, Inc. | Architecture providing increased information display for long acquisitions or constrained memory bandwidth |
US20090052608A1 (en) * | 2007-08-21 | 2009-02-26 | International Business Machines Corporation | Method for dynamically adjusting hardware event counting time-slice windows |
WO2006030564A1 (ja) * | 2004-09-17 | 2006-03-23 | Matsushita Electric Industrial Co., Ltd. | プロセッサ |
US20080025654A1 (en) * | 2005-04-11 | 2008-01-31 | Chang-Hsin Kuo | Rolling Groove with Combined Curve Profile for Linear Guide Way |
KR100656353B1 (ko) * | 2005-07-12 | 2006-12-11 | 한국전자통신연구원 | 메모리 전력 소모를 줄이는 방법 |
US8548520B2 (en) * | 2007-01-26 | 2013-10-01 | Wi-Lan Inc. | Multiple network access system and method |
WO2009022369A1 (ja) | 2007-08-10 | 2009-02-19 | Netcleus Systems Corporation | 仮想キュー処理回路およびタスク処理装置 |
US20090327656A1 (en) * | 2008-05-16 | 2009-12-31 | Dan Baum | Efficiency-based determination of operational characteristics |
US9244732B2 (en) * | 2009-08-28 | 2016-01-26 | Vmware, Inc. | Compensating threads for microarchitectural resource contentions by prioritizing scheduling and execution |
US8245234B2 (en) * | 2009-08-10 | 2012-08-14 | Avaya Inc. | Credit scheduler for ordering the execution of tasks |
US8381004B2 (en) | 2010-05-26 | 2013-02-19 | International Business Machines Corporation | Optimizing energy consumption and application performance in a multi-core multi-threaded processor system |
US8418184B2 (en) * | 2010-09-24 | 2013-04-09 | International Business Machines Corporation | Use of constraint-based linear programming to optimize hardware system usage |
CN102780555B (zh) | 2011-05-13 | 2017-09-29 | 中兴通讯股份有限公司 | 通信系统中的时钟同步方法及装置 |
DE112011105911T5 (de) | 2011-12-01 | 2014-09-11 | Intel Corporation | Server mit Switch-Schaltungen |
US9311149B2 (en) | 2012-12-21 | 2016-04-12 | International Business Machines Corporation | Processor provisioning by a middleware processing system |
KR101730781B1 (ko) * | 2013-12-12 | 2017-04-26 | 인텔 코포레이션 | 경쟁 상태를 검출하는 기법 |
EP3089033B1 (en) * | 2013-12-27 | 2020-10-07 | Hitachi, Ltd. | Realtime hypervisor with priority interrupt support |
US9436608B1 (en) * | 2015-02-12 | 2016-09-06 | International Business Machines Corporation | Memory nest efficiency with cache demand generation |
-
2017
- 2017-01-10 US US15/402,412 patent/US10303575B2/en active Active
- 2017-12-15 JP JP2019532727A patent/JP7023283B2/ja active Active
- 2017-12-15 MX MX2019012412A patent/MX2019012412A/es unknown
- 2017-12-15 CA CA3037292A patent/CA3037292A1/en active Pending
- 2017-12-15 RU RU2019102988A patent/RU2727070C1/ru active
- 2017-12-15 KR KR1020197015381A patent/KR102238191B1/ko active IP Right Grant
- 2017-12-15 CN CN201780082594.7A patent/CN110168503B/zh active Active
- 2017-12-15 WO PCT/EP2017/083139 patent/WO2018130375A1/en unknown
- 2017-12-15 AU AU2017392846A patent/AU2017392846B2/en active Active
- 2017-12-15 EP EP17825811.7A patent/EP3568762A1/en not_active Withdrawn
-
2018
- 2018-01-09 TW TW107100727A patent/TWI663548B/zh active
-
2019
- 2019-03-22 IL IL265555A patent/IL265555B/en active IP Right Grant
- 2019-08-06 ZA ZA2019/05199A patent/ZA201905199B/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4345309A (en) * | 1980-01-28 | 1982-08-17 | Digital Equipment Corporation | Relating to cached multiprocessor system with pipeline timing |
RU2260838C2 (ru) * | 2000-12-29 | 2005-09-20 | Интел Корпорейшн | Система и способ для предварительной выборки данных в кэш-памяти, основанной на интервале неудач |
US20110246995A1 (en) * | 2010-04-05 | 2011-10-06 | Oracle International Corporation | Cache-aware thread scheduling in multi-threaded systems |
RU2585968C2 (ru) * | 2012-03-16 | 2016-06-10 | Интернэшнл Бизнес Машинз Корпорейшн | Сбор сведений о ходе вычислений |
Also Published As
Publication number | Publication date |
---|---|
AU2017392846B2 (en) | 2020-09-17 |
WO2018130375A9 (en) | 2018-09-07 |
CA3037292A1 (en) | 2018-07-19 |
IL265555B (en) | 2021-02-28 |
US10303575B2 (en) | 2019-05-28 |
EP3568762A1 (en) | 2019-11-20 |
WO2018130375A1 (en) | 2018-07-19 |
US20180196727A1 (en) | 2018-07-12 |
JP2020504375A (ja) | 2020-02-06 |
IL265555A (en) | 2019-05-30 |
AU2017392846A1 (en) | 2019-06-06 |
JP7023283B2 (ja) | 2022-02-21 |
CN110168503B (zh) | 2023-07-07 |
KR20190072625A (ko) | 2019-06-25 |
CN110168503A (zh) | 2019-08-23 |
MX2019012412A (es) | 2022-04-11 |
TW201841114A (zh) | 2018-11-16 |
KR102238191B1 (ko) | 2021-04-09 |
TWI663548B (zh) | 2019-06-21 |
ZA201905199B (en) | 2021-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10116675B2 (en) | Methods and systems to detect anomalies in computer system behavior based on log-file sampling | |
RU2727070C1 (ru) | Средство инструментального оснащения для временных промежутков | |
US10158743B2 (en) | Compute node cluster management | |
US20120079097A1 (en) | Proactive identification of hotspots in a cloud computing environment | |
US10169101B2 (en) | Software based collection of performance metrics for allocation adjustment of virtual resources | |
US11379290B2 (en) | Prioritizing and parallelizing the capture of data for debugging computer programs | |
US20180095610A1 (en) | Methods and systems to sample event messages | |
US10268534B2 (en) | Methods and systems that use volatile event types in log files to narrow a search for potential sources of problems in a distributed computing system | |
JP7413371B2 (ja) | 部分的に完了された命令の移行 | |
US11023156B2 (en) | Dynamic API allocation based on data-tagging | |
US10956302B2 (en) | Code coverage collection based on limited select debug information | |
US20170090923A1 (en) | Managing the capture of information in applications with prefix instructions | |
US20200065077A1 (en) | Identifying software and hardware bottlenecks | |
US10394701B2 (en) | Using run time and historical customer profiling and analytics to iteratively design, develop, test, tune, and maintain a customer-like test workload | |
US20180074935A1 (en) | Standardizing run-time and historical customer and test environments and workloads comparisons using specific sets of key platform data points | |
US11169904B2 (en) | Automatically initiating tracing of program code based on statistical analysis | |
US20210037030A1 (en) | Anomaly detection based on data records | |
US11734129B2 (en) | Loop edge snapshotting | |
US11556425B2 (en) | Failover management for batch jobs | |
US11360939B2 (en) | Testing of file system events triggered by file access |