The paper is devoted to the problem of mining graph data. The goal of this process is to discover possibly certain sequences appearing in data. Both rough set flow graphs and fuzzy flow graphs are used to represent sequences of items originally arranged in tables representing information systems. Information systems are considered in the Pawlak sense, as knowledge representation systems. In the paper, an approach involving ant based clustering is proposed. We show that ant based clustering can be used not only for building possible large groups of similar objects, but also to build larger structures (in our case, sequences) of objects to obtain or preserve the desired properties.
W artykule przedstawiono metody reprezentacji pośredniej programu sterowania opisanego językiem LD oraz SFC zgodnie z IEC61131-3, opracowane na potrzeby syntezy sprzętowej kładów sterowania PLC implementowanych w strukturach programowalnych FPGA. W opisie wykorzystano oryginalną implementację grafu skierowanego. Przedstawiono opracowane reguły odwzorowania, zapewniające zachowanie zależności sekwencyjnych przy jednoczesnym uzyskaniu maksymalnego zrównoleglenia działania. Przedstawiono również zarys metod syntezy na podstawie opracowanego odwzorowania pośredniego.
EN
The increased performance of a PLC can be achieved by direct implementation of a control program in an FPGA device [3, 6, 7, 8, 12, 13]. The paper presents a methodology of transforming a standard PLC program given by LD or SFC according to IEC61131-3 to the common intermediate form dedicated for logic synthesis. The intermediate form of the control program is represented by a data flow graph (DFG, Fig. 1). The set of nodes is carefully selected to minimize the number of different types of nodes while assuring implementation of PLC behavior. Attributed edges and multiple argument nodes are used to reduce size of DFG (Fig. 2). The developed method for creating a DAG maintains sequential dependencies between variables and revel operations parallelism. In PLC programs the variables pass values between operations and computation cycles. In order to maintain sequential dependencies, value assignment to a variable is observed. If the accessed variable has not been assigned, its value is used for a driving node (Fig. 3). The SFC is based on step, actions and transitions [2]. The step variable in the DFG is represented by a JK flip-flop equivalent. The activation function of a step is based on analysis of its dependencies with preceding and succeeding steps and transitions (Fig. 5). Actions that are bounded with steps are controlled according to their types (Fig. 6). The presented intermediated representation has been successfully applied to synthesize a PLC implemented in an FPGA device.
Praca przedstawia badania nad metodologią przyspieszania aplikacji HPC na platformach HPRC (platformy HPC z układami FPGA). Najważniejszym zagadnieniem jest selekcja kodu źródłowego, który mógłby zostać przyspieszony. Największym utrudnieniem jest brak odpowiedniego narzędzia wspomagającego ten proces. Aplikacje HPC składają się z ogromnej ilości bardzo złożonego kodu źródłowego. Powoduje to, że niezbędny jest system automatycznej analizy kodu. Dodatkowo powstające języki wysokiego poziomu (HLL) do implementacji algorytmów w FPGA ułatwiają automatyzację transformacji i implementacji wybranego kodu w FPGA. Profiling pętli w kodzie źródłowym jest jednym z głównych kroków, który umożliwia sprawdzenie, czy dana aplikacja HPC jest możliwa do przyspieszenia w układach FPGA. Oprócz selekcji najbardziej czasochłonnych części kodu istotna jest także analiza danych wykorzystywanych w trakcie obliczeń. Przede wszystkim zależności między danymi i ich ilość odgrywa zasadnicze znaczenie. Dzięki tej informacji można optymalnie implementować algorytmy przez minimalizację częstotliwości komunikacji między CPU a układem FPGA.
EN
This paper presents the research on FPGA based acceleration of HPC applications. The most important step to achieve this goal is to extract code that can be sped up. A major drawback is the lack of a tool which could do it. The HPC applications usually consist of a huge amount of complex source code. This is one of the reasons why the process of acceleration should be as automated as possible. Another reason is to make use of HLL (High Level Languages) such as Mitrion-C and Impulse-C. Loop profiling is one of the steps to check if the insertion of HLL to existing HPC source code is possible to gain acceleration of these applications. Hence the most important step to achieve acceleration is to extract the most time consuming code and data dependency, which makes the code easier to be pipelined and parallelized. Data dependency also gives information on how to implement algorithms in an FPGA circuit with the minimal initialization of it during the execution of algorithms.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.