Python in High-Performance Computing

Total Page:16

File Type:pdf, Size:1020Kb

Python in High-Performance Computing Python in High-Performance Computing Martin Sandve Alnæs, Are Magnus Bruaset, Xing Cai, Hans Petter Langtangen, Kent-Andre Mardal, Halvard Moe, Ola Skavhaug, Åsmund Ødegård Simula Research Laboratory c 2006 Topics Crash Course in Python 4 Scientific Computing with Python 17 Visualization in with Python 35 Performance Issues – Tips and Tricks 58 Parallel Computing via Python 64 Extend Your Favorite Library with Python 82 Various Packages for Scientific Computing 121 2 Why Scientific Computing with Python The old days Today FORTRAN C C++ Perl Python Java • Languages have moved from speed and efficiency to flexibility and convenience • Python is a powerful yet easy to use language • Python has a rich set of libraries and extensions • Python is an ideal glue between your applications • Using wrapping techniques, your legacy code may get another life • Python is suitable for computational steering • In this tutorial we also do number crunching with Python! 3 Crash Course in Python We begin with a crash course in Python. In this section we cover: • Basic variables, containers and control structures • Functions, lambda functions and callable objects • Object oriented features like classes and operator overloading • String editing and file handling • For more information on the Python language, please check out: • The Slides "Scripting for Computational Science" [35] • The Book "Python Scripting for Computational Science" [36] • The Python tutorial on python.org [82] • The Introductory Material on Python [32] 4 5 ¤ ¤ § ¦ ¤ ¤ ¦ ¨ £¥¤ ¨ © ¨ §©¨ ! ¦ ¤ © ¦ §©¨ § § ¤ £¥¤ ¦ ¦ ¦ ¢ ¢ ¢ ¦ ¢ ¢ ¢ £¥¤ ¢ ¢ ¢ a in t lines star with on IDLE. t appear segments either or lines ] to star in 33 interactive prefix ¡ code appear sessions: ¡ uing , line ¡ file Sessions the h supposed with Eac Contin Output Run sessions without IPython[ ogram • • • • pr are Interactive Otherwise • • Interactive 6 s les math umber orld, to a n W modules w ariab y v call and ho xt Hello command-line with librar and te guments ork function Load Read ar Load W Print • • • • • Scientific A demonstrates § ¦ ¥ ¤ ¦ ¦ ¤ ¤ ¥ ¤ ¦ ¦ § © ¦ § ¨ £ £ ¥ ¤ ¤ ¦ £ ¤ xample ¤ £ ¥ ¥ ¤ e § ¤ ¤ ¤ ¡ ¥ ¤ ¦ § ¤ ¤ ¤ ¤ ¢ ¦ ¡ ¤ £ £ ¥ ¥ ¤ ¤ ¦ ¤ ¡ ¥ Python A Basic Types • Python is a dynamically typed language, meaning that the type of every variable is determined runtime • Everything is an object, even integers, modules and functions • Python has the following basic variable types: • int: 1, 2, 3 • long (arbitrary length!): 1L, 2L, 3L • complex: 1j, 4+5j • float (only double precision): 0.1, 0.2, 0.3 • bool: True or False • str: "hello world" ¨ © ¢ ¢ ¢¤£ ¥ ¥ ¡ ¦ ¡ ¦ ¡ ¦ £ • Casting is done like § 7 8 ¨ ¨ s £ ¢ of £ © ¢ ¥ ¡ ¨ wrapper ¡ ¦ ¢ objects ¡ are £ ¢ ¡ h ¦ ¢ hold ¦ ¢ © whic ¡ ys): can ¡ © h ¢ ¢ ¨ arra ¡ © later), ¡ ¢ whic ¡ ¦ (see ¥ ¢ ¡ © ¢ types, ys © lists): ¢ © ¡ associative ¡ ¢ arra ¡ or ¥ ¢ ¥ § ¨ © ys. container § maps ¤ ¢ ¡ NumPy in ¦ ¥ arra le/constant ¦ s ¥ C use uilt ¥ ¤ ¨ b (hash utab £ ¤ § will § § (imm three ¢ ¢ we ¥ © . ¢ ¢ has Container contiguous ¡ ¡ ¡ uples Lists: T Dictionaries dition, type ad • • • y ound an ar Python In Basic 9 lists empty and ver o ¤ ¦ strings ¤ iterated indentation ¨ be empty ¥ ¤ ¦ 0, can , equal ¤ ¤ y £ ¤ b if that ¥ ¤ ¤ None ¤ £ to ¦ . ¤ ¥ ¤ ¥ ¤ ¦ ything type ¤ defined ¤ y an ¦ similar £ are © an ¡ on ¤ £ ¥ ¤ ¦ £ ork ¨ § ks ¥ on Structures ¨ w ¤ ¤ ¦ ¢ false ork ¦ loc ¤ ¤ ol w ¤ £ b ork to ¦ ¤ w ¨ ¤ £ ¤ ¦ Contr -loops aluate ogram ¤ § v or ¦ ¦ Pr f if-tests while-loops e ¤ ¤ ¥ • • • • ¦ ¤ Basic ¤ ¤ § 10 ¥ ¤ ¤ £ ¥ £ ¥ £ ¤ ¤ £ ¦ § ¤ ¤ § ¥ ¥ ¥ ¤ ¤ ¤ ¤ ¦ ¤ § ¤ ¤ ¤ § £ ¥ ¤ £ ¥ ¦ ¦ ¦ § § £ ¤ § ¤ ¤ ¤ ¤ ¥ © ¥ ¤ § ¥ ¤ ¤ ¢ ¦ ¥ ¤ ¤ ¤ ¥ ¦ ¦ ¦ ¦ ¦ tools x.: one joins .e str str F ¢ creates y in into b © xpressions werful ¢ e ds ¢ Handling list po or ¡ a strings. w ¨ ¢ ¨ © of ¡ File regular ¢ the some separated with ¡ of © ¡ ¡ items and has ¦ ¦ ¢ ¢ list erl-like the a P string, orking © © w • • • or Python f String 11 orms: f defining y defined aluated b veral v e simple se operator or be in f objects, functions, functions s can al le v come e def __call__ venient with the with con Regular Lambda Strings Callab oneliner • • • • Functions ¨ ¢ ¦ ¡ ¡ ¤ ¨ § ¢ ¡ § © ¢ § ¢ © ¤ ¡ ¡ ¨ ¤ ¤ ¡ ¡ ¤ § § ¦ ¦ ¡ ¤ ¢ ¡ ¦ ¤ ¤ ¤ ¢ ¢ ¢ ¦ ¢ ¡ ! § § ¤ ¡ ¦ ¦ ¤ ¨ ¡ ¦ ¦ ¤ ¤ ¢ ¡ ! ¡ § ¤ ¤ ¡ § © ¤ £ ¢ ¨ ¡ § ¦ ¦ ¢ ¡ § § ¥ ¡ ¦ ¦ ¦ § ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¤ ¤ ¦ ¦ § ¤ £ £ £ ¥ § § ¤ ¤ ¦ £ ¤ ¦ ¦ ¤ £ ¤ £ £ ¤ ¤ ¤ ¤ £ £ ¢ ¤ ¦ ¦ ¤ £ ¤ ¤ £¥¤ Functions Object Oriented Numerics in Python • Python is a powerful object oriented language • Everything in Python is an object • There are no protected or private variables or methods, but the ¢ ¡ ¥ ¦ ¦ £ ¥ effect can be “simulated” with underscore prefix ( ¥ ¦ ¦ £ £ ) • Python supports multiple inheritance • Dynamic typing implies support for generic programming (as with C++ templates) 12 13 ¡ ¡ ¡ y b ve ¢ ¡ ¤ © beha statements ¡ lasses or c ¨ , £ £ print types wn ¤ ¤ o ¦ ¢ ¡ in wn ¡ o ., our © and § § y y i.e , ¢ like our , ¡ ¡ in y ¡ ¢ s ¢ returning ¢ or let f ¨ © Overloading) © to ¦ ¢ © iterating or respectivel f © or ¡ Used , f operator ¡ or ¨ xamples: f : ¦ or e f Used ¥ Used Comparison, : methods, or ¥ ¡ Used : : ¡ ¢ § Used (Operator Some : ¡ ¡ ¥ § : ¥ ¥ ¡ ¢ ¢ ¨ © verloading ¢ ¢ ¢ o , ¡ special ¥ ¨ © ¨ © ts types. ¨ © ¨ © ¨ © ¢ okes ¢ v ¦ ¢ Methods some ¦ ¢ ¢ in uiltin ¥ ¡ £ b suppor mean ¡ © to the laring • • • • • • Python dec like Special 14 y the of of in y onl rue es. T g cop to a is element h langua h manipulation containing aluates ¡ eac ¡ v whic ¨ § list e ¨ § to ¤ ¦ w ¤ ¦ ¤ list, simple ¤ ne functional w et a ¡ y ¨ in ne ¨ function ¡ a function § ¨ like ¨ werful creates ¡ ¨ ¤ ¨ where £ ¤ ¨ ¦ po £ ¢ ¡ ¢ ¥ creates ¤ ¦ § ¢ passed ¥ ¤ list do ¤ ¤ ¦ © Python, § ¢ ¢ § the ¥ ¤ ou in old ¥ © ¦ y ¤ ¢ ¥ ¤ ¢ ¥ ¦ ¥ ogramming ¡ let the ¦ ¤ ¨ ¡ ¥ ¤ ¦ Pr £ applies ¤ ¡ ¢ ¤ £ om £ ¨ ¡ £ datatype fr £ ¡ and ¢ £ ¡ ¥ Style functions ¨ list, in central ¦ ¥ list ¢ ¨ a old elements ¢ uilt w ¥ b are the ne the w e • • f Lists A lists. Functional Introspection § ¦ ¤ ¤ £ ¢ £ £ ¤ ¤ ¤ ¤ ¦ ¤ Python lets you examine and edit objects and their properties runtime. ¨ ¢ © ¥ £ • ¦ ¡ ¡ returns a list of the names of all the properties of the object, both variables and functions ¨ ¢ ¢ © ¥ £ ¡ ¡ • ¡ returns the type of the object ¨ ¢ ¢ ¢ ¢ £ ¥ ¥ © ¥ £ • ¡ ¡ tells you if an object is something that can be called like a function ¢ ¢ ¢ © ¥ • The function ¦ lets you add new variables or functions to a class ¡ £ • All objects have a variable that can hold a documentation string 15 Python has a comprehensive library We mention a few: • A portable interface to the operating system, e.g., file and process ¡ ¢ © ¡ ¥ © ¦ management ( ), file compression ( ), threads ( ) £ ¤ £ ¢ ¢ ¢ ¡ ¦ ¢ ¡ • GUIs: Qt ( ¡ ), Gtk ( ), Tk ( ), WxWindows ¡ ¢ ¡ ¡ ( ¥ ¡ ), . ¢ © • String handling ( ¦ ¡ ), regular expressions (¦ ) • Many applications with Python interface: Word/OpenOffice, Excel/Gnumeric, Oracle, Gimp . ¡ ¢ ¢ ¢ ¢ ¢ ¢ £ ¡ ¡ © • Web modules: , , , 16 Scienti®c Computing with Python • Computing with Numerical Python is introduced • Constructing arrays • Vectoring expressions • Slicing • Solving a linear system • Some available modules for Scientific Computing are then presented • The packages covered in this tutorial are chosen on basis of our research experiences with numerical solution of Partial Differential Equations. • The Vaults of Parnassus[83] have an extensive list of Python modules 17 Numeric vs numarray vs. numpy • There are actually three different implementations of Numerical Python (NumPy) ¦¢§ ¢¡ ¤ • £ ¥ is the original and hence widely used © © ¨ £ ¥ ¥ • ¡ was a reimplementation with some new features ¨ £ • ¡ is a blend of the other two, again with improvements • The three packages have almost the same interface • The performance differs greatly: numpy is fastest for vectorized operations, while Numeric is fastest for indexing and scalar operations • Now it seems best to use a common interface to Numerical Python such that any of the three packages can be used as backend • A common interface can be found at http://folk.uio.no/hpl/scripting/src/tools/py4cs/numpytools.py 18 Example: Solving a Differential Equation • Python can be used as a scientific calculator, like Matlab, Octave, R, etc. • Applications: −u00(x) = f (x) • heat conductivity 2 [ ] x 0, 1 • string deflection u(0) = u(1) = 0 • fluid flow f (x) user given • electrostatics • elasticity, ... • Goal: Compute u using the Numerical Python module (aka NumPy) • NumPy is an extension module for Python that enables efficient numerical computing 19 Numerical Solution Procedure • Divide [0, 1] into n + 1 cells h = 1=(n + 1) • Discretization by the Finite xi = h ∗ i, i = 0, 1, . , n + 1 Difference method u = u(x ) i i • 2 Result: bi = h f (xi) linear system 1 0 · · · 0 2 . 3 . Au = b 60 2 −1 0 · · · . 7 6 7 6 . 7 6 . 7 6 . −1 2 −1 7 6 7 A = 6 . 7 6 .. .. .. 7 6 7 6 7 6 − − 7 6 1 2 1 7 6 7 6 0 −1 2 07 6 7 6 7 60 · · · 0 17 4 5 20 § 21 £ ¨ & : ¡ ¢ ¡ ¢ ¨ £ ¡ $ ¥ ¢ 9 ¢ ¢ ¢ ¨ $ '& : © § § § $ ¥ ¡ ¡ $ " ¨ $ '& : $ ¨
Recommended publications
  • Fortran Resources 1
    Fortran Resources 1 Ian D Chivers Jane Sleightholme May 7, 2021 1The original basis for this document was Mike Metcalf’s Fortran Information File. The next input came from people on comp-fortran-90. Details of how to subscribe or browse this list can be found in this document. If you have any corrections, additions, suggestions etc to make please contact us and we will endeavor to include your comments in later versions. Thanks to all the people who have contributed. Revision history The most recent version can be found at https://www.fortranplus.co.uk/fortran-information/ and the files section of the comp-fortran-90 list. https://www.jiscmail.ac.uk/cgi-bin/webadmin?A0=comp-fortran-90 • May 2021. Major update to the Intel entry. Also changes to the editors and IDE section, the graphics section, and the parallel programming section. • October 2020. Added an entry for Nvidia to the compiler section. Nvidia has integrated the PGI compiler suite into their NVIDIA HPC SDK product. Nvidia are also contributing to the LLVM Flang project. Updated the ’Additional Compiler Information’ entry in the compiler section. The Polyhedron benchmarks discuss automatic parallelisation. The fortranplus entry covers the diagnostic capability of the Cray, gfortran, Intel, Nag, Oracle and Nvidia compilers. Updated one entry and removed three others from the software tools section. Added ’Fortran Discourse’ to the e-lists section. We have also made changes to the Latex style sheet. • September 2020. Added a computer arithmetic and IEEE formats section. • June 2020. Updated the compiler entry with details of standard conformance.
    [Show full text]
  • Wikis with Moinmoin Wiki Creative Group Writing
    KNOW HOW MoinMoin Wiki Building wikis with MoinMoin Wiki Creative Group Writing The members of a project team can profit from collecting their ideas, or any loose ends, in a central repository. Wikis are tailor-made for this task. BY HEIKE JURZIK ay before content manage- ment systems started to Wappear for website manage- ment, Wikis provided a kind of “open door” to HTML pages, allowing any visi- tor to click and edit the HTML content. Wiki is the abbreviation for WikiWiki- Web – “wiki wiki” is derived from Hawaiian and means “quick” or “quickly”. And the open authoring sys- restored at any time, should a page be MySQL, Oracle, or PostgreSQL. The soft- tem certainly is quick. The MoinMoin deleted or damaged by mistake. Also, ware then uses this data to create the Wiki engine is one of the better-known wikis allow you to assign special access public HTML pages. implementations of this technology. controls that can restrict editing to regis- Besides taking a look at the original Users can click to launch the embed- tered users, if required. wiki, you might like to visit what is cur- ded editor and access the content and The first wiki website was published rently the biggest wiki on the Web, the structure of the page they want to mod- by Ward Cunningham in 1995, and it is Wikipedia [3], which offers innumerable ify. Typically, an Edit link is provided to still online [1]. At the time, Cunningham articles on pages in multiple languages. make things easier. wrote an email message saying that he It is an example of how well information In contrast to “real” HTML, which had programmed a new kind of database can be organized with a wiki.
    [Show full text]
  • Brief Instructions for Using DISLIN to Generate 2-D Data Plots Directly
    2-D Data Plotting with DISLIN 1. DISLINweb site is at www.dislin.de. The web site has an online manual and example plots (along with sample Fortran 90 code) that are very useful. 2. We are currently using DISLIN with the gfortran compiler. To compile, link, and run a program using the DISLIN graphics library, use the command gf95link -a -r8 source-file-name <other-compile-and-link-flags> where source-file-name is given without the .f90 ending. 3. You must USE the dislin Fortran module DISLIN found in the file dislin.f90. This file can be copied into your working directory from /usr/local/dislin/gf/real64. The use dislin state- ment should be placed in any program component (main program or subprogram) that calls a DIS- LIN routine. The module must be compiled (with the command gfortran -c dislin.f90) before using it in any program. 4. All floating point arguments to DISLIN subroutines must be type real(wp), where parameter wp is defined as selected real kind(15). 5. All character strings passed to DISLIN as control parameters can be either upper or lower case. 6. The simple 2-D plot shown on the next page was generated with the following program: program distest use dislin implicit none integer, parameter::wp=selected_real_kind(15) integer::i,n real(wp)::xa,xe,xor,xstep,ya,ye,yor,ystep real(wp), dimension(:), allocatable::x,y,y2 character (len=200)::legendstring ! Sample program for 2-d data plot using dislin call random_seed write(*,"(a)",advance="no")"Number of data point to generate? " read(*,*)n allocate(x(n),y(n),y2(n)) do i=1,n x(i)=real(i,wp) call random_number(y(i)) !just some random points for the demo call random_number(y2(i)) end do xa=1.0_wp ! xa is the lower limit of the x-axis.
    [Show full text]
  • Research Article Constrained Wiki: the Wikiway to Validating Content
    Hindawi Publishing Corporation Advances in Human-Computer Interaction Volume 2012, Article ID 893575, 19 pages doi:10.1155/2012/893575 Research Article Constrained Wiki: The WikiWay to Validating Content Angelo Di Iorio,1 Francesco Draicchio,1 Fabio Vitali,1 and Stefano Zacchiroli2 1 Department of Computer Science, University of Bologna, Mura Anteo Zamboni 7, 40127 Bologna, Italy 2 Universit´e Paris Diderot, Sorbonne Paris Cit´e, PPS, UMR 7126, CNRS, F-75205 Paris, France Correspondence should be addressed to Angelo Di Iorio, [email protected] Received 9 June 2011; Revised 20 December 2011; Accepted 3 January 2012 Academic Editor: Kerstin S. Eklundh Copyright © 2012 Angelo Di Iorio et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. The “WikiWay” is the open editing philosophy of wikis meant to foster open collaboration and continuous improvement of their content. Just like other online communities, wikis often introduce and enforce conventions, constraints, and rules for their content, but do so in a considerably softer way, expecting authors to deliver content that satisfies the conventions and the constraints, or, failing that, having volunteers of the community, the WikiGnomes, fix others’ content accordingly. Constrained wikis is our generic framework for wikis to implement validators of community-specific constraints and conventions that preserve the WikiWay and their open collaboration features. To this end, specific requirements need to be observed by validators and a specific software architecture can be used for their implementation, that is, as independent functions (implemented as internal modules or external services) used in a nonintrusive way.
    [Show full text]
  • "Graph" Program
    Physics 305 Introduction to Computational Physics Fall 2010 The graph program Unfortunately, graphics programs are not as universal as we would like. These notes discuss one simple graphics program, unimaginatively called “graph”. While it is not a part of the standard Linux setup, it is universally available (and free) from the GNU software project. In fact, it is written and maintained by Robert Maier in the UA Math department. More importantly for you, it is already installed on faraday. Before you try out “graph”, make a couple of data files to practice on. These should be just two columns of number, where each line is an (x, y) pair. For example, file “data1” might look like: 0.0 0.123 0.5 0.2245 0.7 0.3145 1.1 0.224 Note that the x values don’t have to be evenly spaced. graph can make several kinds of output. The two that are important to us are X-windows output, which makes plots appear on the screen in front of you, and PostScript output, which you can email as part of your homework assignment. (You can, and should, also view the PostScript on your screen by using the “gv” (short for “ghostview”) command. Now try it out. Suppose “data1” is the name of one our your practice data files. Type graph -T X data1 WATCH OUT. Upper and lower case matters. Spacing and punctuation matter. “-T” and “X” must be upper case, and there must be a space between them. This should produce a graph of your data file on your screen.
    [Show full text]
  • With SCL and C/C++ 3 Graphics for Guis and Data Plotting 4 Implementing Computational Models with C and Graphics José M
    Presentation Agenda Using Cross-Platform Graphic Packages for 1 General Goals GUIs and Data Plotting 2 Concepts and Background Overview with SCL and C/C++ 3 Graphics for GUIs and data plotting 4 Implementing Computational Models with C and graphics José M. Garrido C. 5 Demonstration of C programs using graphic libraries on Linux Department of Computer Science College of Science and Mathematics cs.kennesaw.edu/~jgarrido/comp_models Kennesaw State University November 7, 2014 José M. Garrido C. Graphic Packages for GUIs and Data Plotting José M. Garrido C. Graphic Packages for GUIs and Data Plotting A Computational Model Abstraction and Decomposition An software implementation of the solution to a (scientific) Abstraction is recognized as a fundamental and essential complex problem principle in problem solving and software development. It usually requires a mathematical model or mathematical Abstraction and decomposition are extremely important representation that has been formulated for the problem. in dealing with large and complex systems. The software implementation often requires Abstraction is the activity of hiding the details and exposing high-performance computing (HPC) to run. only the essential features of a particular system. In modeling, one of the critical tasks is representing the various aspects of a system at different levels of abstraction. A good abstraction captures the essential elements of a system, and purposely leaving out the rest. José M. Garrido C. Graphic Packages for GUIs and Data Plotting José M. Garrido C. Graphic Packages for GUIs and Data Plotting Developing a Computational Model Levels of Abstraction in the Process The process of developing a computational model can be divided in three levels: 1 Prototyping, using the Matlab programming language 2 Performance implementation, using: C or Fortran programming languages.
    [Show full text]
  • Dokuwiki Download Windows
    Dokuwiki download windows DokuWiki on a Stick can be downloaded from the official DokuWiki download page. Just choose the option under “Include Web-Server”. Download DokuWiki! Here you can download the latest DokuWiki-Version. Either just MicroApache (Windows) Apache , PHP , GD2 and SQLite ​Install:upgrade · ​Upgrade · ​Hosting · ​DokuWiki Archived Downloads. To create an “on the Stick” edition of DokuWiki, visit and check the “MicroApache (Windows)” checkbox in the. DokuWiki is a great wiki engine with minimal requirements that usually gets Download the non- thread-safe version of PHP for Windows from. XAMPP is a popular WAMP stack for the Windows operating system. Download the DokuWiki zip file from (e.g. Bitnami native installers automate the setup of a Bitnami application stack on Windows, OS X or Linux. Each installer includes all of the software necessary to run. The Bitnami DokuWiki Stack provides a one-click install solution for DokuWiki. Download installers and virtual machines, or run your own DokuWiki server in the. Download the executable file for the Bitnami DokuWiki Stack from the Bitnami This tool is named on Windows and is located in the. How to install DokuWiki on Windows XP in less then 5 minutes: 1) Download and install WAMP5 (or the latest version) for Windows XP. How install DokuWiki on your server . Install DokuWiki on windows 7 localhost (XAMPP + php7. DokuWiki latest version: Free and User-Friendly Open-Source Information Storage Software. DokuWiki is Download DokuWiki for Windows. DokuWiki ist eine schlanke Wiki-Anwendung auf PHP-Basis, die ohne Datenbank auskommt und eingetragene Texte als TXT-Dateien ablegt.
    [Show full text]
  • Plotting Package Evaluation
    Plotting package evaluation Introduction We would like to evaluate several graphics packages for possible use in the GLAST Standard Analysis Environment. It is hoped that this testing will lead to a recommendation for a plotting package to be adopted for use by the science tools. We will describe the packages we want to test, the tests we want to do to (given the short time and resources for doing this), and then the results of the evaluation. Finally we will discuss the conclusions of our testing and hopefully make a recommendation. According to the draft requirements document for plotting packages the top candidates are: ROOT VTK VisAD JAS PLPLOT There has been some discussion about using some python plotting package: e.g.,Chaco, SciPy, and possibly Biggles (suggested in Computers in Science and Engineering). A desired feature is have is the ability to get the cursor position back from the graphics package. We will look for this desired feature. An additional desired feature would be to have the same graphics package make widgets or have a closely associated widget friend. Widget friends will not be tested here, but will have to studied before agreeing to use it. Package Widget Friend(s) Comments Biggles WxPython Plplot PyQt, Tk, java The Python Qt interface is only experimental at present. ROOT Comes with its own GUI INTEGRAL makes GUIs from ROOT graphics libs. We hear this was a bit of a challenge to do, but much of the work is already done for us. for us. Tests: The testing is to be carried out separately in the Windows and Linux environments.
    [Show full text]
  • WHY USE a WIKI? an Introduction to the Latest Online Publishing Format
    WHY USE A WIKI? An Introduction to the Latest Online Publishing Format A WebWorks.com White Paper Author: Alan J. Porter VP-Operations WebWorks.com a brand of Quadralay Corporation [email protected] WW_WP0309_WIKIpub © 2009 – Quadralay Corporation. All rights reserved. NOTE: Please feel free to redistribute this white paper to anyone you feel may benefit. If you would like an electronic copy for distribution, just send an e-mail to [email protected] CONTENTS Overview................................................................................................................................ 2 What is a Wiki? ...................................................................................................................... 2 Open Editing = Collaborative Authoring .................................................................................. 3 Wikis in More Detail................................................................................................................ 3 Wikis Are Everywhere ............................................................................................................ 4 Why Use a Wiki...................................................................................................................... 5 Getting People to Use Wikis ................................................................................................... 8 Populating the Wiki................................................................................................................. 9 WebWorks ePublisher and Wikis
    [Show full text]
  • GNU Libredwg for Version 0.12.4, 30 December 2020
    GNU LibreDWG for version 0.12.4, 30 December 2020 GNU LibreDWG Developers and Thien-Thi Nguyen This manual is for GNU LibreDWG (version 0.12.4, 30 December 2020). Copyright c 2010-2020 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Table of Contents 1 Overview ::::::::::::::::::::::::::::::::::::::::: 1 1.1 API/ABI version ::::::::::::::::::::::::::::::::::::::::::::::: 1 1.2 Coverage ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.3 Related projects :::::::::::::::::::::::::::::::::::::::::::::::: 3 2 Usage ::::::::::::::::::::::::::::::::::::::::::::: 5 3 Types::::::::::::::::::::::::::::::::::::::::::::: 6 4 Objects ::::::::::::::::::::::::::::::::::::::::::: 8 4.1 HEADER :::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 4.2 ENTITIES :::::::::::::::::::::::::::::::::::::::::::::::::::: 22 4.3 OBJECTS :::::::::::::::::::::::::::::::::::::::::::::::::::: 92 5 Sections:::::::::::::::::::::::::::::::::::::::: 259 5.1 HEADER Section :::::::::::::::::::::::::::::::::::::::::::: 259 5.2 OBJECTS Section ::::::::::::::::::::::::::::::::::::::::::: 259 5.3 CLASSES Section :::::::::::::::::::::::::::::::::::::::::::: 259 5.4 HANDLES Section :::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Volume 30 Number 1 March 2009
    ADA Volume 30 USER Number 1 March 2009 JOURNAL Contents Page Editorial Policy for Ada User Journal 2 Editorial 3 News 5 Conference Calendar 30 Forthcoming Events 37 Articles J. Barnes “Thirty Years of the Ada User Journal” 43 J. W. Moore, J. Benito “Progress Report: ISO/IEC 24772, Programming Language Vulnerabilities” 46 Articles from the Industrial Track of Ada-Europe 2008 B. J. Moore “Distributed Status Monitoring and Control Using Remote Buffers and Ada 2005” 49 Ada Gems 61 Ada-Europe Associate Members (National Ada Organizations) 64 Ada-Europe 2008 Sponsors Inside Back Cover Ada User Journal Volume 30, Number 1, March 2009 2 Editorial Policy for Ada User Journal Publication Original Papers Commentaries Ada User Journal — The Journal for Manuscripts should be submitted in We publish commentaries on Ada and the international Ada Community — is accordance with the submission software engineering topics. These published by Ada-Europe. It appears guidelines (below). may represent the views either of four times a year, on the last days of individuals or of organisations. Such March, June, September and All original technical contributions are articles can be of any length – December. Copy date is the last day of submitted to refereeing by at least two inclusion is at the discretion of the the month of publication. people. Names of referees will be kept Editor. confidential, but their comments will Opinions expressed within the Ada Aims be relayed to the authors at the discretion of the Editor. User Journal do not necessarily Ada User Journal aims to inform represent the views of the Editor, Ada- readers of developments in the Ada The first named author will receive a Europe or its directors.
    [Show full text]
  • “Computer Programming IV” As Capstone Design and Laboratory Attachment Shoichi Yokoyama† Yamagata University, Yonezawa, Japan
    Journal of Engineering Education Research Vol. 15, No. 5, pp. 31~35, September, 2012 “Computer Programming IV” as Capstone Design and Laboratory Attachment Shoichi Yokoyama† Yamagata University, Yonezawa, Japan ABSTRACT A new obligatory subject, Computer Programming IV, is organized in the Department of Informatics, Faculty of Engineering, Yamagata University. The purposes of the subject are as follows: (1) Attachment to each laboratory for bachelor thesis was usually at the initial stage of the student’s fourth academic year. This subject actually moves up the attachment because students are tentatively attached to a laboratory for this subject. The interval to complete their bachelor thesis is extended by half a year. (2) In each laboratory, students cooperate with each other to complete their project. The project becomes capstone design which JABEE (Japan Accreditation Board for Engineering Education) is recently emphasizing. We not only explain the introduction of this subject, but also report some case studies. Keywords: Engineering education, Capstone design, Laboratory attachment, Project, JABEE I. Introduction 1) third academic year, so that students first took the subject in 2009. The detailed plan created before this first use is The education program of the Department of Informatics, described in [2]. Faculty of Engineering, Yamagata University (YUDI) was The present paper describes the syllabus and proceeds accredited in 2003 by Japan Accreditation Board for to describe case studies of some laboratories. We explain Engineering Education (JABEE) [1], the second to be three years of results. accredited for information engineering. Through the in- Computer Programming IV has the following two purposes: termediate examination in 2005, the program was re- accredited in 2008 for the 2009 to 2014 period.
    [Show full text]