Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników

Znaleziono wyników: 7

Liczba wyników na stronie
first rewind previous Strona / 1 next fast forward last
Wyniki wyszukiwania
Wyszukiwano:
w słowach kluczowych:  code generation
help Sortuj według:

help Ogranicz wyniki do:
first rewind previous Strona / 1 next fast forward last
1
Content available remote Parallel Code Generation for Mobile Devices
EN
Mobile computing is driven by pursuit of ever increasing performance. Multicore processing is recognized as a key component for continued performance improvements. This paper presents the Iteration Space Slicing (ISS) framework aimed at automatic parallelization of code for Mobile Internet Devices (MID). ISS algorithms permit us to extract coarse-grained parallelism available in arbitrarily nested parameterized loops. The loops are parallelized and transformed to multi-threaded application for the Android OS. Experimental results are carried out by means of the benchmark suites (UTDSP and NPB) using the ARM dual core processor. The related parallelization techniques are discussed, in particular for embedded systems. The future work is outlined.
PL
Przetwarzanie obliczeń za pomocą urządzeń mobilnych wiąże się z rosnącym zapotrzebowaniem na moc ich procesorów. Artykuł przedstawia zastosowanie narzędzia ISS (podziału przestrzeni iteracji pętli programowych) do wyznaczenia równoległego kodu dedykowanego dla urządzeń mobilnych (MID). Algorytmy pozwalają na wyznaczenie równoległości gruboziarnistej dla dowolnie zagnieżdżonych pętli i wygenerowanie wielowątkowego kodu dla systemu Android. Wyniki eksperymentalna dla zestawów pętli testowych NAS i UTDSP przeprowadzono wykorzystując dwurdzeniowy procesor ARM. Prace pokrewne i przyszłe zadania przedstawiono na końcu artykułu.
2
Content available remote Automatic Extraction of Parallelism for Mobile Devices
EN
This paper presents the Iteration Space Slicing (ISS) framework aimed at automatic parallelization of code for Mobile Internet Devices (MID). ISS algorithms permit us to extract coarse-grained parallelism available in arbitrarily nested parameterized loops. The loops are parallelized and transformed to multi-threaded application for the Android OS. Experimental results are carried out by means of the benchmark suites (UTDSP and NPB) using an ARM quad core processor. Performance benefits and power consumption are studied. Related and future work are discussed.
XX
Artykuł przedstawia ekstrakcję niezależnych fragmentów kodu dla urządzeń przenośnych. Narzędzie pozwala na zrównoleglenie gruboziarniste dowolnie zagnieżdżonych pe˛ tli programowych z parametrami do kodu wielowątkowego dla systemu Android. Eksperymenty przeprowadzono na zestawach pętli testowych (UTDSP i NPB) za pomocą czterordzeniowego procesora ARM. Przedstawiono analizę wydajności i poboru mocy oraz pokrewne rozwiązania.
EN
Behavior of a complex system can be designed using state machines of the system classes. Using a Model-Driven Development approach models are transformed into an executable code. Structural and behavioral models can be extended with time concepts from the Modeling and Analysis of Real-Time and Embedded Systems (MARTE) profile. The refined models are used in transformation. We presented a case study of a home alarm system that illustrates an application development methodology. It was used in verification of the approach implemented in Framework for eXecutable UML (FXU). This MDD tool, used for development of an C# application from UML classes and state machines, was extended with the support of MARTE time concepts.
PL
Złożone systemy są modelowane z użyciem maszyn stanowych. Transformacje modeli służą do budowy wykonywalnych aplikacji. Modele mogą być uszczegóławiane z wykorzystaniem pojęć czasowych zdefiniowanych w profilu MARTE. W pracy przedstawiono projekt systemu alarmowego ilustrującego modelowanie pojęć czasowych. Transformacja i realizacja aplikacji systemu była wykonana przy pomocy FXU - narzędzia do automatycznej generacji kodu z klas i maszyn stanowych, wspierającego transformacje modeli ze specyfikacją czasu z profilu MARTE.
PL
Opisano proces generacji syntezowalnego kodu w językach opisu sprzętu przy wykorzystaniu programowej aplikacji. Działanie aplikacji pokazano na przykładzie sprzętowego modułu kodera kodów korekcyjnych z rodziny BCH. Ukazano proces generacji, rozpoczynający się opisem algorytmu, przez reprezentacje pośrednie i tworzenie wynikowego kodu w językach VHDL i Verilog. Artykuł zawiera wprowadzenie do tematyki pamięci NAND-Flash, opis właściwości kodów BCH oraz algorytmów zastosowanych do ich dekodowania. Szczegółowo opisano aplikację generatora kodu źródłowego w językach HDL, proces generacji i tworzenia kodu źródłowego.
EN
This article describes an idea of generating synthesisable HDL module code by a software generator application. As an example of complete data flow - from idea, through intermediate representation, to VHDL / Verilog code - an error correction algorithm of BCH (Bose-Chaudhuri-Hocquenghem) was choosen. The article introduces the NAND-Flash architecture together with its key features, gives description of BCH algorithm and the theory behind it, covers generator application's overall data flow together with some implementation details and shortly summarises proposed solution's features and advantages.
EN
This paper presents a novel approach to implementing nonrecursive filter banks and transforms. A domain-specific language has been developed that allows such systems to be described more clearly, more compactly, and faster than with either MATLAB/Simulink or SPL, the existing tools for developing DSP algorithms. Its syntax is aimed at closely linking code to the signal flow graph of a given transform and at allowing the algorithm to be specified in terms of elementary transformations: plane rotations, reflections, lifting steps, delays, etc. Unlike the mentioned platforms, our approach allows to avoid constructing complicated matrix expressions, even though matrix notation is supported via a subset of the MATLAB language. The associated compiler converts system descriptions into quite efficient Java, C++, or C implementations, which can be used to rapidly prototype applications based on subband processing of signals or to prepare objective functions for optimizing coefficients of computational schemes.
PL
W artykule przedstawiono nowatorskie podejście do implementowania nierekursywnych banków filtrów i transformacji. Opracowany został dziedzinowy język, który pozwala opisywać te systemy przejrzyściej, zwięźlej i szybciej niż z użyciem MATLAB/Simulink lub SPL, istniejących narzędzi do rozwijania algorytmów cyfrowego przetwarzania sygnałów. Jego składnia jest ukierunkowana na ścisłe powiązanie kodu z grafem przepływu danych w rozpatrywanej transformacji i na umożliwienie wyspecyfikowania algorytmu w kategoriach transformacji elementarnych: obrotów planarnych, odbić, stopni "lifting", opóźnień itp. W odróżnieniu od wymienionych platform, proponowane podejście pozwala uniknąć konstruowania skomplikowanych wyrażeń macierzowych, choć notacja macierzowa jest dostępna jako podzbiór języka MATLAB. Skojarzony kompilator przekształca opisy systemów w dosyć wydajne implementacje Java, C++ lub C, które mogą być wykorzystywane do szybkiego prototypowania aplikacji, które opierają się na podpasmowej dekompozycji sygnałów, lub do przygotowywania funkcji celu na potrzeby optymalizacji współczynników schematów obliczeniowych.
6
Content available remote Automated code generation from system requirements in natural language
EN
An initial stage of a software development is specification of the system requirements. Typically, these requirements are expressed in UML and consist of use cases and domain model. A use case is a sequence of tasks, which have to be performed to achieve a specific goal. The tasks of the use case are written in a natural language. The domain model describes objects used in the use cases. In this paper, we present an approach that allows automated generation of executable code directly from the use cases written in a natural language. Usage of the generation significantly accelerates the system development, e.g. it makes immediate verification of requirements completeness possible and the generated code can be used as a starting point for the final implementation. A prototype implementation of the approach is also described in the paper.
EN
The COSMA software environment, developed in the Institute of Computer Science, WUT, was designed primarily for model checking of reactive systems specified in terms of Concurrent State Machines (CSM). However, COSMA supports also Extended CSM (ECSM). The extensions allow for using complex data types and pieces of C/C++ code, attributed to CSM states and/or transitions. Because of these extensions, ECSM models cannot be verifed by model checking, but they can be used as an intermediate step in code generation. The underlying CSM represent then the flow of control within cooperating components and the communication among them while the extensions specify the data structures and the details of their processing. The paper discusses the code generation from ECSM diagrams. The approach is illustrated with an example.
PL
Środowisko COSMA, rozwijane w Instutycie Informatyki Politechniki Warszawskiej, powstało z myślą o weryfikacji modeli (model checking) systemów reaktywnych specyfikowanych przy pomocy automatów CSM (Concurrent State Machines) jak i ich rozszerzonej wersji (ECSM - Extended CSM). Rozszerzenie CSM o złożone struktury danych, atrybuty związane z przejściami i stanami oraz możliwość bezpośredniego użycia kody w C/C++ powodują, że model wyrażony w ECSM nie może być formalnie weryfikowany, a jedynie stanowić krok pośredni przy generacji kodu. W takim podejściu model CSM reprezentuje sterowanie i komunikację pomiędzy modułami systemu, podczas gdy ECSM - dane i szczegóły przetwarzania. Artykuł omawia generację kodu z modelu ECSM zilustrowaną przykładem.
first rewind previous Strona / 1 next fast forward last
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ć.