Accelerating the execution of time consuming software applications by configuring special hardware during the program execution on multiprocessor computers
За разлику од рачунара који се заснивају на контроли тока (енг. control-flow), чији
су процесори способни за обављање свих инструкција дефинисаних архитектуром
рачунара, а од којих сваки у једном тренутку обавља највише неколико
инструкција, код рачунара заснованих на протоку података се хардвер
конфигурише тако да се просторно распореде компоненте од којих је свака у
стању да изврши само инструкцију за коју је предвиђена. Извршавање се своди на
проток података кроз такав хардвер. Главне одлике овакве архитектуре рачунара
су већа проточност података и смањена потрошња електричне енергије. Иако
хардверске архитектуре рачунара засноване на протоку података постоје
деценијама, технологија је тек недавно омогућила њихово равноправно
коришћење са рачунарима заснованим на контроли тока, чиме проблем
распоређивања послова између хардвера заснованог на протоку података и
конвенционалних процесора све више добија на значају. Неке од временски
захтевних апликација већи део времена извршавања проводе у цикличном
понављању истих операција. Уколико су те итерације међусобно независне, или се
могу довести у такав облик, онда је њихово извршавање погодно обавити
употребом реконфигурабилног хардвера и парадигме засноване на протоку
података.
Ова теза описује постојеће метеде и предлаже нове за прављање распореда
извршавања послова на оваквим архитектурама рачунара у циљу побољшања
перформанси, при чему су само неке од апликација погодне за убрзавање
коришћењем реконфигурабилног хардвера и парадигме засноване на протоку
података. Предлажу се и временско и просторно дељење реконфигурабилног хардвера од стране конвенционалних процесора...In contrast to control-flow computer architectures, whose processors are capable of
executing all instructions defined by the architecture, while each processor executes
only up to few instructions simultaneously, hardware dataflow architectures are based
on configuring hardware by spreading components capable of executing one instruction
each over the surface. Computation is based on dataflow through the hardware. Main
characteristics of this architecture are higher data throughput and reduced power
consumption. Some of the computation demanding applications spend most of the
execution time in iterating over the same set of instructions. Although hardware
dataflow architectures exist for decades, due to the technology limitations, they have
became valuable for executing such applications only recently. Therefore, the problem
of scheduling jobs on dataflow hardware and conventional processors becomes
increasingly important. Some of the computation demanding applications spend most of
the execution time in executing for loops. If iterations are mutually independent, or if
they can be transformed in such a form, then these applications are suitable for
executing on dataflow hardware.
This thesis presents available methods for creating schedules for this kind of
architectures in order to reduce total execution times, and proposes new ones. Sharing
the dataflow hardware in both time and space is proposed. Scheduling jobs on this
architecture belongs to the NP problem class and scheduling time is considered as an
overhead, so the algorithms use heuristics and search possible combinations of jobs only
up to appropriate depth. Results confirm that this architecture can reduce total execution
time and reveal the conditions under which the acceleration is possible..