![]() ![]() ![]() Run git submodule update -init to clone the submodules.If you want to install prometeo building the sources on your local machine you can proceed as follows: Notice that, since prometeo makes extensive use of type hints to equip Python code with static typing information, the minimum Python version required is 3.6. Prometeo can be installed through PyPI with pip install prometeo-dsl. ![]() The table below shows the CPU times obtained on a Fibonacci benchmark. Moreover, prometeo can largely outperform state-of-the-art Python compilers such as Nuitka. All the benchmarks have been run on a Dell XPS-9360 equipped with an i7-7560U CPU running at 2.30 GHz (to avoid frequency fluctuations due to thermal throttling). The computation times obtained with NumPy and Julia are added too for comparison - notice however that these last two implementations of the Riccati factorization are not as easily embeddable as the C code generated by prometeo and the hand-coded C implementation. The figure below shows a comparison of the CPU time necessary to carry out a Riccati factorization using highly optimized hand-written C code with calls to BLASFEO and the ones obtained with prometeo transpiled code from this example. Since prometeo programs transpile to pure C code that calls the high performance linear algebra library BLASFEO (publication:, code: ), execution time can be comparable to hand-written high-performance code. The output shows the outcome of the heap usage analysis and the execution time (in this case there is not much to see :p). hello world!Ī simple hello world example that shows how to either run a trivial prometeo program from Python or transpile it to C, build it and run it can be found here. Prometeo's documentation can be found on Read the Docs at. Written in prometeo transpile to self-contained C code that does not require linking against self-contained and embeddable : unlike other similar tools and languages, prometeo targets specifically embedded applications and programs.fast memory management : thanks to its static analysis, prometeo can avoid allocatingĪnd garbage-collecting memory, resulting in faster and safer execution.Prometeo transpiled programs have a guaranteed maximum heap usage. deterministic memory usage : a specific program structure is required and enforced through static analysis.statically typed : prometeo uses Python's native type hints to strictly enforce static typing.efficient : prometeo programs transpile to high-performance C code.Prometeo programs can be executed from the Python interpreter. Python compatible syntax : prometeo is a DSL embedded into the Python language.To high-performance self-contained C code easily deployable on embedded devices. One to conveniently write scientific computing programs in a high-level language (Python itself) that can be transpiled prometeo provides aĭomain specific language (DSL) based on a subset of the Python language that allows This is prometeo, an experimental modeling tool for embedded high-performance computing. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |