MPI Based Python Libraries for Data Science Applications

Total Page:16

File Type:pdf, Size:1020Kb

MPI Based Python Libraries for Data Science Applications MPI Based Python Libraries for Data Science Applications by John Scott Rodgers A thesis submitted to the Department of Computer Science, College of Natural Sciences and Mathematics in partial fulfillment of the requirements for the degree of Master of Science in Computer Science Chair of Committee: Dr. Edgar Gabriel Committee Member: Dr. Shishir Shah Committee Member: Dr. Martin Huarte Espinosa University of Houston May 2020 ACKNOWLEDGMENTS The work in the thesis could not have been realized without the help and support of many people. A very special thanks must be given to my thesis advisor, Dr. Edgar Gabriel, who provided constant guidance and insight, as well as provided the resources necessary to carry out this work. Additional special thanks must be given to Angela Braun Esq., who was kind enough to act as my first draft copy editor. I would also like to thank my thesis committee members Dr. Shishir Shah and Dr. Martin Huarte-Espinosa for serving on the committee and providing their domain specific guidance and support. Additionally, I would like to thank the University of Houston department of Computer Science teaching faculty for providing me with the experience and tools necessary to succeed in this effort. Lastly, I would like to thank the oracles of Computer Science, Google and StackOverflow, for always being there in my time of need. ii ABSTRACT Tools commonly leveraged to tackle large-scale Data Science workflows have traditionally shied away from existing high performance computing paradigms, largely due to their lack of fault toler- ance and computation resiliency. However, these concerns are typically only of critical importance to problems tackled by technology companies at the highest level. For the average Data Scientist, the benefits of resiliency may not be as important as the overall execution performance. To this end, the work of this thesis aimed to develop prototypes of tools favored by the Data Science com- munity that function in a data-parallel environment, taking advantage of functionality commonly used in high performance computing. To achieve this goal, a prototype distributed clone of the Python NumPy library and a select module from the SciPy library were developed, which leverage MPI for inter-process communication and data transfers while abstracting away the complexity of MPI programming from its users. Through various benchmarks, the overhead introduced by logic necessary to resolve functioning in a data-parallel environment, as well as the scalability of using parallel compute resources for routines commonly used by the emulated libraries are analyzed. For the distributed NumPy clone, it was found that for routines that could act solely on their local array contents, the impact of the introduced overhead was minimal; while for routines that required global scope of distributed elements, a considerable amount of overhead was introduced. In terms of scalability, both the distributed NumPy clone and select SciPy module, a distributed implementation of K-Means clustering, exhibited reasonably performant results; notably showing sensitivity to local process problem sizes and operations that required large amounts of collective communication/synchronization. As this work mainly focused on the initial exploration and pro- totyping of behavior, the results of the benchmarks can be used in future development efforts to target operations for refinement and optimization. iii TABLE OF CONTENTS ACKNOWLEDGMENTS ii ABSTRACT iii LIST OF TABLES vi LIST OF FIGURES viii 1 INTRODUCTION 1 1.1 Motivation of Work . 2 1.2 Goals of Thesis . 4 1.3 Existing Implementations . 5 1.3.1 DistArray . 5 1.3.2 D2O . 6 1.3.3 Dask . 7 1.4 Organization of Remainder . 8 2 BACKGROUND 9 2.1 Python . 9 2.2 MPI . 10 2.2.1 Communicators . 12 2.2.2 Point-to-Point Communication . 13 2.2.3 Collective Communication . 13 2.3 mpi4py . 16 2.4 NumPy . 18 2.5 SciPy . 21 2.6 K-Means Clustering . 22 3 CONTRIBUTION 25 3.1 MPInumpy . 25 3.1.1 MPIArray Attributes . 26 3.1.2 Data Distributions . 28 3.1.3 Creation Routines . 29 3.1.4 Reductions Routines . 31 3.1.5 Behavior & Operations . 33 3.2 MPIscipy . 38 3.2.1 Cluster . 38 4 EVALUATION 41 4.1 MPInumpy - Evaluation . 43 4.1.1 Single Process Performance . 43 4.1.2 Scalability . 50 4.2 MPIscipy K-Means Clustering - Evaluation . 57 4.2.1 Single Process Performance . 57 iv 4.2.2 Scalability . 60 5 CONCLUSIONS 63 BIBLIOGRAPHY 65 v LIST OF TABLES 1 C like Supported NumPy Data Types . 19 2 Current SciPy Modules . 22 3 Global MPIArray Attributes . 27 4 Useful Distributed MPIArray Attributes . 27 vi LIST OF FIGURES 1 Bandwidth comparison between InfiniBand verbs and TCP over InfiniBand. 3 2 Bandwidth comparison between mpi4py and native Open MPI over a QDR Infini- Band and Gigabit Ethernet networks. 4 3 Example interactive Python 3 shell session. 10 4 Distributed memory architecture showing systems, with independent CPU's and memory, connected via a network interconnect. 11 5 Collection of MPI processes in default MPI communicator (black) and a sub-set of processes in a sub-communicator (red). 12 6 Broadcast of data from MPI process 1 to all other processes. 14 7 Scatter of data from MPI process 1 to all other processes. 14 8 Gather of data from all MPI processes to process 1. 15 9 All gather of data from all MPI processes to all processes. 15 10 All to all unique exchange of data from all MPI processes to all processes. Note: number shown on colored data elements represents MPI process ID of destination. 16 11 Reduction (Collective Sum) of data from all MPI processes to process 1. 16 12 Interactive mpi4py Python example using two tmux panes to demonstrate blocking Python object send from rank 0 (left) to rank 1 (right). 18 13 Interactive Python example of two dimensional array storage in memory. 20 14 Interactive Python example of using slicing notation to return the first and third rows of a 4x4 array of elements. 21 15 Example of K-Means clustering on simulated data, with three features, containing two clusters. 24 16 MPInumpy array UML object diagram. 26 17 Example block distribution of 1, 2, and 3 dimensional data among three MPI processes. 28 18 Example MPIArray creation routine for a 5x5 block partitioned array. 30 19 Example MPIArray reduction routine demonstrating how to normalize all columns of a 5x5 block partitioned array by the columns respective arithmetic mean. 33 20 Example MPIArray accessing routines of a 5x5 block partitioned array demonstrating how to get element in global position 0,0 and how to set the element in global position 4,4............................................... 34 21 Interactive MPInumpy Python example using two tmux panes, one for MPI pro- cess/rank 0 (left) and one for MPI process/rank 1 (right), to demonstrate accessing routine behavior shown in Figure 20. 34 22 Example MPIArray local and global row iteration of a 5x5 block partitioned array. 36 23 Example reshape operation of a block partitioned array of shape 7x3 to a new shape of 3x7. 37 24 Example usage of the MPIscipy K-Means clustering method on simulated data, with one feature, containing two clusters. 40 25 Example usage of the SciPy K-Means clustering method on simulated data, with one feature, containing two clusters. 40 26 NumPy vs. MPInumpy array creation execution performance (left) and overhead (right). 44 vii 27 NumPy vs. MPInumpy arithmetic operation execution performance (left) and over- head (right). 45 28 NumPy vs. MPInumpy reduction operation execution performance (left) and over- head (right). 46 29 NumPy vs. MPInumpy local access operation execution performance (left) and overhead (right). 47 30 NumPy vs. MPInumpy global access operation execution performance (left) and overhead (right). 48 31 NumPy vs. MPInumpy reshape operation execution performance (left) and overhead (right). 49 32 MPInumpy array creation strong (top) and weak (bottom) scaling execution perfor- mance (left) and speed up (right). 51 33 MPInumpy arithmetic operation strong (top) and weak (bottom) scaling execution performance (left) and speed up (right). 52 34 MPInumpy reduction operation strong (top) and weak (bottom) scaling execution performance (left) and speed up (right). 53 35 MPInumpy local access operation strong (top) and weak (bottom) scaling execution performance (left) and speed up (right). 54 36 MPInumpy global access operation strong (top) and weak (bottom) scaling execution performance (left) and speed up (right). 55 37 MPInumpy reshape operation strong (top) and weak (bottom) scaling execution performance (left) and speed up (right). 56 38 SciPy K-Means2 execution performance as a function of the number of features, observations, and cluster centroids. 58 39 MPIscipy K-Means execution performance as a function of the number of features, observations, and cluster centroids. 59 40 SciPy vs MPIscipy K-Means overhead as a function of the number of features, ob- servations, and cluster centroids. 59 41 MPIscipy K-Means strong (top) and weak (bottom) scaling execution performance (left) and speed up (right). 62 viii 1 Introduction The field of Data Science has seen a recent explosive growth, mainly driven by the inundation of data that is produced and collected by computer systems and sensors around the world. Practitioners of the field of Data Science, known as Data Scientists, leverage analytical models and algorithms.
Recommended publications
  • Porta-SIMD: an Optimally Portable SIMD Programming Language Duke CS-1990-12 UNC CS TR90-021 May 1990
    Porta-SIMD: An Optimally Portable SIMD Programming Language Duke CS-1990-12 UNC CS TR90-021 May 1990 Russ Tuck Duke University Deparment of Computer Science Durham, NC 27706 The University of North Carolina at Chapel Hill Department of Computer Science CB#3175, Sitterson Hall Chapel Hill, NC 27599-3175 Text (without appendix) of a Ph.D. dissertation submitted to Duke University. The research was performed at UNC. @ 1990 Russell R. Tuck, III UNC is an Equal Opportunity/Atlirmative Action Institution. PORTA-SIMD: AN OPTIMALLY PORTABLE SIMD PROGRAMMING LANGUAGE by Russell Raymond Tuck, III Department of Computer Science Duke University Dissertation submitte in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Department of Computer Science in the Graduate School of Duke University 1990 Copyright © 1990 by Russell Raymond Tuck, III All rights reserved Abstract Existing programming languages contain architectural assumptions which limit their porta­ bility. I submit optimal portability, a new concept which solves this language design problem. Optimal portability makes it possible to design languages which are portable across vari­ ous sets of diverse architectures. SIMD (Single-Instruction stream, Multiple-Data stream) computers represent an important and very diverse set of architectures for which to demon­ strate optimal portability. Porta-SIMD (pronounced "porta.-simm'd") is the first optimally portable language for SIMD computers. It was designed and implemented to demonstrate that optimal portability is a useful and achievable standard for language design. An optimally portable language allows each program to specify the architectural features it requires. The language then enables the compiled program to exploit exactly those fea.­ tures, and to run on all architectures that provide them.
    [Show full text]
  • Pnw 2020 Strunk001.Pdf
    Remote Sensing of Environment 237 (2020) 111535 Contents lists available at ScienceDirect Remote Sensing of Environment journal homepage: www.elsevier.com/locate/rse Evaluation of pushbroom DAP relative to frame camera DAP and lidar for forest modeling T ∗ Jacob L. Strunka, , Peter J. Gouldb, Petteri Packalenc, Demetrios Gatziolisd, Danuta Greblowskae, Caleb Makif, Robert J. McGaugheyg a USDA Forest Service Pacific Northwest Research Station, 3625 93rd Ave SW, Olympia, WA, 98512, USA b Washington State Department of Natural Resources, PO Box 47000, 1111 Washington Street, SE, Olympia, WA, 98504-7000, USA c School of Forest Sciences, Faculty of Science and Forestry, University of Eastern Finland, P.O. Box 111, 80101, Joensuu, Finland d USDA Forest Service Pacific Northwest Research Station, 620 Southwest Main, Suite 502, Portland, OR, 97205, USA e GeoTerra Inc., 60 McKinley St, Eugene, OR, 97402, USA f Washington State Department of Natural Resources, PO Box 47000, 1111 Washington Street SE, Olympia, WA, 98504-7000, USA g USDA Forest Service Pacific Northwest Research Station, University of Washington, PO Box 352100, Seattle, WA, 98195-2100, USA ARTICLE INFO ABSTRACT Keywords: There is growing interest in using Digital Aerial Photogrammetry (DAP) for forestry applications. However, the Lidar performance of pushbroom DAP relative to frame-based DAP and airborne lidar is not well documented. Interest Structure from motion in DAP stems largely from its low cost relative to lidar. Studies have demonstrated that frame-based DAP Photogrammetry generally performs slightly poorer than lidar, but still provides good value due to its reduced cost. In the USA Forestry pushbroom imagery can be dramatically less expensive than frame-camera imagery in part because of a na- DAP tionwide collection program.
    [Show full text]
  • GUIDE to INTERNATIONAL UNIVERSITY ADMISSION About NACAC
    GUIDE TO INTERNATIONAL UNIVERSITY ADMISSION About NACAC The National Association for College Admission Counseling (NACAC), founded in 1937, is an organization of 14,000 professionals from around the world dedicated to serving students as they make choices about pursuing postsecondary education. NACAC is committed to maintaining high standards that foster ethical and social responsibility among those involved in the transition process, as outlined in the NACAC’s Guide to Ethical Practice in College Admission. For more information and resources, visit nacacnet.org. The information presented in this document may be reprinted and distributed with permission from and attribution to the National Association for College Admission Counseling. It is intended as a general guide and is presented as is and without warranty of any kind. While every effort has been made to ensure the accuracy of the content, NACAC shall not in any event be liable to any user or any third party for any direct or indirect loss or damage caused or alleged to be caused by the information contained herein and referenced. Copyright © 2020 by the National Association for College Admission Counseling. All rights reserved. NACAC 1050 N. Highland Street Suite 400 Arlington, VA 22201 800.822.6285 nacacnet.org COVID-19 IMPACTS ON APPLYING ABROAD NACAC is pleased to offer this resource for the fifth year. NACAC’s Guide to International University Admission promotes study options outside students’ home countries for those who seek an international experience. Though the impact the current global health crisis will have on future classes remains unclear, we anticipate that there will still be a desire among students—perhaps enhanced as a result of COVID-19, to connect with people from other cultures and parts of the world, and to pursue an undergraduate degree abroad.
    [Show full text]
  • User Guide - Opendap Documentation
    User Guide - OPeNDAP Documentation 2017-10-12 Table of Contents 1. About This Guide . 1 2. What is OPeNDAP. 1 2.1. The OPeNDAP Client/Server . 2 2.2. OPeNDAP Services . 3 2.3. The OPeNDAP Server (aka "Hyrax"). 4 2.4. Administration and Centralization of Data . 5 3. OPeNDAP Data Model . 5 3.1. Data and Data Models . 5 4. OPeNDAP Messages . 17 4.1. Ancillary Data . 17 4.2. Data Transmission . 23 4.3. Other Services . 24 4.4. Constraint Expressions . 27 5. OPeNDAP Server (Hyrax) . 34 5.1. The OPeNDAP Server. 34 6. OPeNDAP Client . 37 6.1. Clients . 38 1. About This Guide This guide introduces important concepts behind the OPeNDAP data model and Web API as well as the clients and servers that use them. While it is not a reference for any particular client or server, you will find links to particular clients and servers in it. 2. What is OPeNDAP OPeNDAP provides a way for researchers to access scientific data anywhere on the Internet, from a wide variety of new and existing programs. It is used widely in earth-science research settings but it is not limited to that. Using a flexible data model and a well-defined transmission format, an OPeNDAP client can request data from a wide variety of OPeNDAP servers, allowing researchers to enjoy flexibility similar to the flexibility of the web. There are different implementations of OPeNDAP produced by various open source NOTE organizations. This guide covers the implementation of OPeNDAP produced by the OPeNDAP group. The OPeNDAP architecture uses a client/server model, with a client that sends requests for data out onto the network to a server, that answers with the requested data.
    [Show full text]
  • ESAIL D3.3.4 Auxiliary Tether Reel Test Report
    WP 3.3 “Auxiliary tether reel”, Deliverable D3.3.4 ESAIL ESAIL D3.3.4 Auxiliary tether reel test report Work Package: WP 3.3 Version: Version 1.0 Prepared by: DLR German Aerospace Center, Roland Rosta Time: Bremen, June 18th, 2013 Coordinating person: Pekka Janhunen, [email protected] 1 WP 3.3 “Auxiliary tether reel”, Deliverable D3.3.4 ESAIL Document Change Record Pages, Tables, Issue Rev. Date Modification Name Figures affected 1 0 18 June 2013 All Initial issue Rosta 2 WP 3.3 “Auxiliary tether reel”, Deliverable D3.3.4 ESAIL Table of Contents 1. Scope of this Document ......................................................................................................................... 5 2. Test Item Description ............................................................................................................................ 6 2.1. Auxiliary Tether Reel...................................................................................................................... 6 3. Test Results ............................................................................................................................................ 7 3.1. Shock and Vibration Tests .............................................................................................................. 7 3.2. Thermal Vacuum Tests ................................................................................................................. 10 4. Appendix .............................................................................................................................................
    [Show full text]
  • Optimization of Virtual Power Plant in Nordic Electricity Market
    DEGREE PROJECT IN ELECTRICAL ENGINEERING, SECOND CYCLE, 30 CREDITS STOCKHOLM, SWEDEN 2019 Optimization of Virtual Power Plant in Nordic Electricity Market JWALITH DESU KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE KTH Royal Institute of Technology Master Thesis Optimization of Virtual Power Plant in the Nordic Electricity Market Author: Jwalith Desu Supervisor: Dr. Mohammad Reza Hesamzadeh Examiner: Dr. Mohammad Reza Hesamzadeh A thesis submitted in fulfilment of the requirements for the degree of Master of Science in the Electricity Market Research Group (EMReG) School of Electrical Engineering October 2019 Declaration of Authorship I, Jwalith DESU, declare that this thesis titled, 'Optimization of Virtual Power Plant in the Nordic Electricity Market' and the work presented in it are my own. I confirm that: This work was done wholly or mainly while in candidature for a research degree at this University. Where any part of this thesis has previously been submitted for a degree or any other qualification at this University or any other institution, this has been clearly stated. Where I have consulted the published work of others, this is always clearly at- tributed. Where I have quoted from the work of others, the source is always given. With the exception of such quotations, this thesis is entirely my own work. I have acknowledged all main sources of help. Where the thesis is based on work done by myself jointly with others, I have made clear exactly what was done by others and what I have contributed myself. Signed: Date: i Abstract With the world becoming more conscious about achieving 1.5-degree scenario as promised by the most powerful economies of the world, much needed push was received by the renewable energy technology providers.
    [Show full text]
  • Maple Park Parent Handbook
    MAPLE PARK MIDDLE SCHOOL - PARENT HANDBOOK 2018-2019- FUTURE GRIFFINS . available at schoo l offices aad d;,o,;c,w,bs;Oe • Official Boar d o f Education pohwww.c~1es nkcschools.org Parent/Student Handbook Welcome to Maple Park Middle School Dr. Brian Van Batavia, Principal Reagan Allegri, Assistant Principal Andrea Stauch, Assistant Principal 5300 N. Bennington Ave Kansas City, Missouri 64119 816-321-5280 www.nkcschools.org/mpms/ General Phone Information Maple Park Office 321-5280 6:45–2:45 p.m. Attendance 321-5282 24 hours Fax 321-5281 24 hours School Nurse 321-5283 7:45–3:00 p.m. Maple Park Cafeteria 321-5284 7:30–2:00 p.m. Central Office 321-5000 8:00–5:00 p.m. Transportation 321-5007 8:00–5:00 p.m. School Hours Office hours: 6:45 a.m.–2:45 p.m. Class hours: 7:15 a.m.–2:12 p.m. Early Release Thursday: 7:15 a.m.-1:37 p.m. Activities: 2:15 p.m.–4:45 p.m. July 5, 2018 Dear Maple Park Families, Welcome to Maple Park for the 2018-2019 School Year! I am looking forward to growing and learning with each of you as this will be my third year at Maple Park! I love middle school and the vast amounts of maturity that is achieved by the students during these years. I can’t wait to get to know each one of you. We are so fortunate to expand our attendance area and welcome new families into our school community.
    [Show full text]
  • Large Area Forest Yield Estimation with Pushbroom Digital Aerial Photogrammetry
    Article Large Area Forest Yield Estimation with Pushbroom Digital Aerial Photogrammetry Jacob Strunk 1,*, Petteri Packalen 2, Peter Gould 3, Demetrios Gatziolis 4, Caleb Maki 5, Hans-Erik Andersen 6 and Robert J. McGaughey 6 1 USDA Forest Service Pacific Northwest Research Station, 3625 93rd Ave SW, Olympia, WA 98512, USA 2 School of Forest Sciences, Faculty of Science and Forestry, University of Eastern Finland, P.O. Box 111, 80101 Joensuu, Finland; [email protected] 3 Washington State Department of Natural Resources, P.O. Box 47000 and 1111 Washington Street SE Olympia, WA 98504-7000, USA; [email protected] 4 USDA Forest Service Pacific Northwest Research Station, 620 Southwest Main Suite 400 Portland, OR 97205, USA; [email protected] 5 Washington State Department of Natural Resources, P.O. Box 47000, 1111 Washington Street SE Olympia, WA 98504-7000, USA; [email protected] 6 USDA Forest Service Pacific Northwest Research Station, University of Washington, P.O. Box 352100, Seattle, WA 98195-2100, USA; [email protected] (H.-E.A.); [email protected] (R.J.M.) * Correspondence: [email protected] Received: 5 February 2019; Accepted: 1 May 2019; Published: 7 May 2019 Abstract: Low-cost methods to measure forest structure are needed to consistently and repeatedly inventory forest conditions over large areas. In this study we investigate low-cost pushbroom Digital Aerial Photography (DAP) to aid in the estimation of forest volume over large areas in Washington State (USA). We also examine the effects of plot location precision (low versus high) and Digital Terrain Model (DTM) resolution (1 m versus 10 m) on estimation performance.
    [Show full text]
  • Quickstart - Opendap
    QuickStart - OPeNDAP 2017-10-12 Table of Contents 1. Introduction. 1 1.1. Key Terms . 1 2. What to do With an OPeNDAP URL . 1 2.1. An Easy Way: Using the Browser-Based OPeNDAP Server Dataset Access Form . 2 2.2. A More Flexible Way: Using Commands in a Browser . 5 3. Finding OPeNDAP URLs . 13 3.1. Google . 13 3.2. GCMD. 13 3.3. Web Interface . 13 4. Further Analysis . 14 1. Introduction OPeNDAP is the developer of client/server software, of the same name, that enables scientists to share data more easily over the internet. The OPeNDAP group is also the original developer of the Data Access Protocol (DAP) that the software uses. Many other groups have adopted DAP and provide compatible clients, servers, and SDKs. OPeNDAP’s DAP is also a NASA community standard. For the rest of this document, "OPeNDAP" will refer to the software. With OPeNDAP, you can access data using an OPeNDAP URL of any database server that supports OPeNDAP. You can do this via command-line, Internet browser, or a custom UI. You can also use other NetCFD complaint tools, such asMatlab, R, IDL, IDV, and Panoply. Note that OPeNDAP data is, by default, stored and transmitted in binary form. In addition to its native data representation format, OPeNDAP can get data in the following formats: NetCDF, GeoTIFF, JPEG2000, JSON, ASCII. This quick start guide covers how to use OPeNDAP in a typical web browser, such as Firefox, Chrome, or Safari, to discover information about data that is useful when creating database queries.
    [Show full text]
  • Download (1MB)
    Developing Policy Inputs for Efficient Trade and Sustainable Development Using Data Analysis Mini.K.G Senior Scientist, Fisheries Resources Assessment Division Central Marine Fisheries Research Institute, Kochi Email: [email protected] Introduction Trade forms a vital part of the world economy. The analysis of data on trade and related parameters plays a pivotal role in developing policy inputs for efficient trade and sustainable development. It is evident that the success of any type of analysis depends on the availability of the suitable type of data. In general, time series, cross sectional and pooled data are the three types of data available for trade analysis. Time series data are characterized by observations collected at regular intervals over a period of time while cross-sectional data are data on one or more variables collected at the same point of time. The pooled data is a combination of time series and cross-sectional data. For example, panel data, which is a special type of pooled data is used to study the relationship between trade flows and trade barriers over time. In recent years, the quantitative and qualitative analysis of trade and the effects of policies have grown sharply. This was due to the advances in the theoretical and analytical techniques as well as increased computational and data processing power of computers. A multitude of analysis tools are available in today’s world for a thorough and scientifically valid analysis of data. There are several choices available for the user to choose from – ranging from the general public license packages, analysis packages with statistical add-ons, general purpose languages with statistics libraries to the advanced proprietary packages.
    [Show full text]
  • Plantgl: a Python-Based Geometric Library for 3D Plant Modelling At
    PlantGL: A Python-based geometric library for 3D plant modelling at different scales Christophe Pradal, Frédéric Boudon, Christophe Nouguier, Jérôme Chopard, Christophe Godin To cite this version: Christophe Pradal, Frédéric Boudon, Christophe Nouguier, Jérôme Chopard, Christophe Godin. PlantGL: A Python-based geometric library for 3D plant modelling at different scales. Graphical Models, Elsevier, 2009, 71 (1), 1–21, posted-at = 2008-11-04 14:10:07. 10.1016/j.gmod.2008.10.001. hal-00850782 HAL Id: hal-00850782 https://hal.inria.fr/hal-00850782 Submitted on 8 Aug 2013 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. PlantGL: a Python-based geometric library for 3D plant modelling at different scales C. Pradal a 1 , F. Boudon a,∗1, C. Nouguier a, J. Chopard b, C. Godin b aCIRAD, Virtual Plants INRIA Project-Team, UMR DAP, Montpellier, F-34398 France. bINRIA, Virtual Plants INRIA Project-Team, UMR DAP, Montpellier, F-34398 France. Abstract In this paper, we present PlantGL, an open-source graphic toolkit for the creation, simulation and analysis of 3D virtual plants. This C++ geometric library is embedded in the Python language which makes it a powerful user-interactive platform for plant modeling in various biological application domains.
    [Show full text]
  • Building Micropython with KEIL and Programming with Python on I.MX RT1050/1060 Rev
    AN13242 Building Micropython with KEIL and Programming with Python on i.MX RT1050/1060 Rev. 0 — 27 April, 2021 Application Note Contents 1 Introduction 1 Introduction......................................1 This application note introduces the porting of MicroPython, the packaging of 2 Hardware platform...........................1 2.1 i.MX RT1050/60 crossover peripheral functions, and the adaptation of circuit boards, using the example process........................................ 1 of our work on the i.MX RT1050/1060EVK development board. The code are 2.2 i.MX RT1050/60 EVK board........ 1 mainly written in C language, but are presented to the users as Python modules 3 Micropython.....................................2 and types. You can either evaluate and use MicroPython on this development 3.1 Brief introduction to Python board, or use it to port and adapt your new board design. MicroPython’s native Language.....................................2 project management and build environment is based on GCC and Make under 3.2 Brief introduction to Micropython Linux. To facilitate the development habits of most MCU embedded engineers, .....................................................3 the development environment is also ported to Keil MDK5. 4 Building and running Micropython on i.MX RT1050/1060 EVK.................. 3 The readers are expected to have basic experience of development with KEIL 4.1 Downloading source code........... 3 MDK, knowing what is CMSIS-Pack, the concept of target in KEIL and how to 4.2 Opening project with KEIL
    [Show full text]