The Multi-Purposes Calibration and Optimization Tool): Un Software Libre Para Obtener Par´Ametros Emp´Iricos Necesarios En Modelos De Simulaci´On

Total Page:16

File Type:pdf, Size:1020Kb

The Multi-Purposes Calibration and Optimization Tool): Un Software Libre Para Obtener Par´Ametros Emp´Iricos Necesarios En Modelos De Simulaci´On MPCOTool (the Multi-Purposes Calibration and Optimization Tool): un software libre para obtener par´ametros emp´ıricos necesarios en modelos de simulaci´on Autores del software: J. Burguete y B. Latorre Autor del manual: J. Burguete 8 de diciembre de 2018 ´Indice general 1. Compilando el c´odigo fuente 2 2. Interfaz 5 2.1. Formatoenl´ıneadecomandos . 5 2.2. Uso de MPCOTool como una librer´ıa externa . 6 2.3. Aplicaci´on con interfaz gr´afica de usuario interactiva....... 6 2.4. Ficherosdeentrada.......................... 7 2.4.1. Ficherodeentradaprincipal. 7 2.4.2. Ficherosdeplantilla . 11 2.5. Ficherosdesalida........................... 11 2.5.1. Ficheroderesultados. 11 2.5.2. Ficherodevariables . 11 3. Organizaci´on de MPCOTool 13 4. M´etodos de optimizaci´on 15 4.1. M´etodo de fuerza bruta de barrido regular . 15 4.2. M´etododeMonte-Carlo . 16 4.3. M´etodo de fuerza bruta de muestreo ortogonal . 17 4.4. Algoritmo iterativo aplicado a los m´etodos de fuerza bruta. 18 4.5. M´etododeascensodecolinas . 20 4.5.1. Ascensoporcoordenadas . 21 4.5.2. Ascensoaleatorio. 21 4.6. M´etodogen´etico . 22 4.6.1. Elgenoma........................... 22 4.6.2. Supervivencia de los mejores individuos . 22 4.6.3. Algortimodemutaci´on . 24 4.6.4. Algoritmodereproducci´on . 24 4.6.5. Algoritmodeadaptaci´on. 25 4.6.6. Paralelizaci´on. 25 Referencias 27 1 Cap´ıtulo 1 Compilando el c´odigo fuente El c´odigo fuente en MPCOTool est´aescrito en lenguaje C. El programa ha sido compilado y probado en los siguientes sistemas operativos: Debian Hurd, kFreeBSD y Linux 9; Devuan Linux 2; DragonFly BSD 5.2; Dyson Illumos; Fedora Linux 29; FreeBSD 11.2; Linux Mint DE 3; Manjaro Linux; Microsoft Windows 71, y 101; NetBSD 7.0; OpenBSD 6.4; OpenIndiana Hipster; OpenSUSE Linux Leap; Ubuntu Mate Linux 18.04; y Xubuntu Linux 18.10. Es probable que tambi´en puede compilarse y funcione en otros sistemas operati- vos, otras distribuciones de software y otras versiones pero no ha sido probado. 1Windows 7, y Windows 10 son marcas registradas de Microsoft Corporation. 2 Para generar el fichero ejecutable a partir de c´odigo fuente, un compilador de C (GCC [2018] o Clang [2018]), los sistemas de configuraci´on Autoconf [2018], Automake [2018] y Pkg-config [2018], el programa de control de la creaci´on de ejecutables GNU-Make [2018] y las siguienres librer´ıas de software libre son necesarias: Libxml [2018]: Librer´ıa requerida para leer el fichero principal de entrada en formato XML. GSL [2018]: Librer´ıa cient´ıfica usada para generar los n´umeros pseudo- aleatorios usados por los algoritmos gen´etico y de Monte-Carlo. GLib [2018]: Librer´ıa requerida para analizar las plantillas de los ficheros de entrada y para implementar algunos tipos de datos, funciones ´utiles y rutinas usadas para paralelizar la carga computacional en los diferentes procesadores de la m´aquina. JSON-GLib [2018]: Librer´ıa usada para leer el fichero principal de entrada en formato JSON. GTK+3 [2018]: Librer´ıa opcional usada para dibujar la interfaz gr´afica interactiva. OpenMPI [2018] o MPICH [2018]: Librer´ıas opcionales. Cuando est´an ins- taladas en el sistema una de ellas es usada para permitir la paralelizaci´on del c´alculo en m´ultiples computadoras. Las indicaciones proporcionadas en Install-UNIX [2018] pueden seguirse para instalar todas estas utilidades. En OpenBSD 6.4, antes de generar el c´odigo, deben seleccionarse versiones adecuadas de Autoconf y Automake haciendo en un terminal: > export AUTOCONF VERSION=2.69 AUTOMAKE VERSION=1.16 En sistemas Windows hay que instalar MSYS2 (http://sourceforge.net/projects/msys2) y las librer´ıas y utilidades requeridas. Para ello se pueden seguir las instrucciones detalladas en https://github.com/jburguete/install-unix. En Fedora Linux 29, para usar OpenMPI hay que hacer en un terminal (en la versi´on de 64 bits): > export PATH=$PATH:/ usr/ lib64 /openmpi/bin En FreeBSD 11.2, debido a un extra˜no error en la versi´on por defecto de gcc, hay que hacer en un terminal: > export CC=gcc5 (o CC=clang) Una vez que todas las utilidades necesarias han sido instaladas, hay que descargar el c´odigo de Genetic. Luego puede compilarse haciendo en un terminal: > git clone https://github.com/jburguete/genetic. git > cd genetic /2.2.2 > ./ build El siguiente paso es descargar el c´odigo fuente de MPCOTool, enlazarlo con el de Genetic y compilar todo junto haciendo: > git clone https://github.com/jburguete/mpcotool. git > cd mpcotool/4.0.3 > ln −s ../../genetic/2.2.2 genetic > ln −s genetic/libgenetic.so (o .dll en sistemas Windows) > ./ build 3 En sevidores o en cl´usters, en los que una versi´on sin interfaz gr´afica parale- lizada con MPI es lo m´as conveniente, reempl´acese el script build por: > ./ build without gui Opcionalmente, si se quieren compilar los tests con las funciones anal´ıticas de optimizaci´on est´andar, hay que hacer (los ejecutables de test2, test3 y test4 usan tambi´en la librer´ıa Genetic): > cd ../ tests/test2 > ln −s ../../../genetic/2.2.2 genetic > ln −s genetic/libgenetic.so (.dll en sistemas Windows) > cd ../ test3 > ln −s ../../../genetic/2.2.2 genetic > ln −s genetic/libgenetic.so (.dll en sistemas Windows) > cd ../ test4 > ln −s ../../../genetic/2.2.2 genetic > ln −s genetic/libgenetic.so (.dll en sistemas Windows) > cd ../../4.0.3 > make tests Finalmente podemos construir los manuales en formato PDF haciendo: > make manuals 4 Cap´ıtulo 2 Interfaz ¡OJO! La representaci´on de los n´umeros reales se hace, seg´un el est´andar internacional, separando los decimales mediante el “.” decimal. 2.1. Formato en l´ınea de comandos En esta secci´on hemos marcado entre corchetes los argumentos opcionales. La l´ınea de comandos en modo secuencial es (donde X es el n´umero de hilos a ejecutar paralelamente y S una semilla para el generador de n´umeros pseudo-aleatorios): > ./mpcotoolbin [− nthreads X] [− seed S] fichero de entrada .xml [ fichero de resultados] [fichero de variables ] La l´ınea de comandos en modo paralelizado en diferentes computadoras con MPI es (donde X es el n´umero de hilos a ejecutar en cada nodoyS una semilla para el generador de n´umeros pseudo-aleatorios): > mpirun [MPI options] ./mpcotoolbin [− nthreads X] [− seed S] fichero de entrada.xml [fichero de resultados ] [ fichero de variables ] La sintaxis del programa simulador ha de ser: > ./simulador fichero de entrada 1 [fichero de entrada 2] [...] fichero de salida Hay dos opciones para el fichero de salida. Puede comenzar con un n´umero que indique el valor de la funci´on objetivo o puede ser un fichero de resul- tados que tiene que ser evaluado por un programa externo (el evaluador) comparando con un fichero de datos experimentales. En caso de la ´ultima opci´on del punto anterior, la sintaxis del programa para evaluar la funci´on objetivo tiene que ser (donde el fichero de resulta- dos debe comenzar con el valor de la funci´on objetivo): > ./evaluador fichero simulado fichero experimental fichero de resultados 5 En systemas de tipo UNIX, la aplicaci´on interactiva puede abrirse hacien- do en un terminal: > ./mpcotool 2.2. Uso de MPCOTool como una librer´ıa ex- terna MPCOTool se puede usar tambi´en como una librer´ıa externa haciendo: 1. C´opiese la librer´ıa din´amica (“libmpcotool.so” en sistemas Unix o “libmp- cotool.dll” en sistemas Windows) a la ruta de su programa. 2. Incl´uyase la cabecera de la funci´on en su c´odigo fuente: > extern int mpcotool ( int argn , char ∗∗ argc); 3. Constr´uyase el fichero ejecutable de su programa incluyendo los flags del enlazador: > $ gcc ... −L. −Wl,− rpath=. −lmpcotool ... 4. La llamada a esta funci´on es equivalente a la orden en modo de l´ınea de comandos (v´ease la secci´on anterior): argn: n´umero de argumentos incluyendo el nombre del programa. argc[0]: ”mpcotool”(nombre del programa). argc[1]: primer argumento de la l´ınea de comandos. ... argc[argn − 1]: ´ultimo argumento de la l´ınea de comandos. 2.3. Aplicaci´on con interfaz gr´afica de usuario interactiva Una forma alternativa de usar el programa consiste en usar la aplicaci´on con interfaz gr´afica de usuario interactiva, llamada MPCOTool. En esta aplicaci´on la paralelizaci´on en diferentes computadoras usando OpenMPI o MPICH est´a desactivada, esta paralelizaci´on s´olo puede usarse en modo de comandos. En la figura 2.1 se muestra una figura con la ventana principal de la utilidad. Desde esta ventana podemos acceder a cada variable, coeficiente, algoritmo y programa de simulaci´on requerido. Los resultados ´optimos se presentan finalmente en un cuadro de di´alogo como el mostrado en la figura 2.2. 6 Figura 2.1: Ventana principal de la aplicaci´on con interfaz gr´afica de usuario interactiva de MPCOTool. Figura 2.2: Cuadro de di´alogo de los resultados ´optimos de la aplicaci´on con interfaz gr´afica de usuario interactiva de MPCOTool. optimize simulator algorithm evaluator nsimulations niterations tolerance nbest threshold npopulation ngenerations mutation reproduction adaptation seed climbing nsteps nestimates relaxation norm p result variables ··· experiment name template1 template2 templaten weight ··· ··· experiment name template1 template2 templaten weight variable name minimum maximum absolute minimum absolute maximum precision nsweeps nbits step ··· variable name minimum maximum absolute minimum absolute maximum precision nsweeps nbits step Figura 2.3: Estructura del fichero principal de entrada. Nodos y propiedades im- prescindibles est´an en negrita. No obstante, otras propiedades tambi´en pueden ser necesarias en funci´on del algoritmo de optimizaci´on seleccionado. 2.4. Ficheros de entrada 2.4.1.
Recommended publications
  • Solaris 10 End of Life
    Solaris 10 end of life Continue Oracle Solaris 10 has had an amazing OS update, including ground features such as zones (Solaris containers), FSS, Services, Dynamic Tracking (against live production operating systems without impact), and logical domains. These features have been imitated in the market (imitation is the best form of flattery!) like all good things, they have to come to an end. Sun Microsystems was acquired by Oracle and eventually, the largest OS known to the industry, needs to be updated. Oracle has set a retirement date of January 2021. Oracle indicated that Solaris 10 systems would need to raise support costs. Oracle has never provided migratory tools to facilitate migration from Solaris 10 to Solaris 11, so migration to Solaris has been slow. In September 2019, Oracle decided that extended support for Solaris 10 without an additional financial penalty would be delayed until 2024! Well its March 1 is just a reminder that Oracle Solaris 10 is getting the end of life regarding support if you accept extended support from Oracle. Combined with the fact gdpR should take effect on May 25, 2018 you want to make sure that you are either upgraded to Solaris 11.3 or have taken extended support to obtain any patches for security issues. For more information on tanningix releases and support dates of old and new follow this link ×Sestive to abort the Unix Error Operating System originally developed by Sun Microsystems SolarisDeveloperSun Microsystems (acquired by Oracle Corporation in 2009)Written inC, C'OSUnixWorking StateCurrentSource ModelMixedInitial release1992; 28 years ago (1992-06)Last release11.4 / August 28, 2018; 2 years ago (2018-08-28)Marketing targetServer, PlatformsCurrent: SPARC, x86-64 Former: IA-32, PowerPCKernel typeMonolithic with dynamically downloadable modulesDefault user interface GNOME-2-LicenseVariousOfficial websitewww.oracle.com/solaris Solaris is the own operating system Of Unix, originally developed by Sunsystems.
    [Show full text]
  • Adventures with Illumos
    > Adventures with illumos Peter Tribble Theoretical Astrophysicist Sysadmin (DBA) Technology Tinkerer > Introduction ● Long-time systems administrator ● Many years pointing out bugs in Solaris ● Invited onto beta programs ● Then the OpenSolaris project ● Voted onto OpenSolaris Governing Board ● Along came Oracle... ● illumos emerged from the ashes > key strengths ● ZFS – reliable and easy to manage ● Dtrace – extreme observability ● Zones – lightweight virtualization ● Standards – pretty strict ● Compatibility – decades of heritage ● “Solarishness” > Distributions ● Solaris 11 (OpenSolaris based) ● OpenIndiana – OpenSolaris ● OmniOS – server focus ● SmartOS – Joyent's cloud ● Delphix/Nexenta/+ – storage focus ● Tribblix – one of the small fry ● Quite a few others > Solaris 11 ● IPS packaging ● SPARC and x86 – No 32-bit x86 – No older SPARC (eg Vxxx or SunBlades) ● Unique/key features – Kernel Zones – Encrypted ZFS – VM2 > OpenIndiana ● Direct continuation of OpenSolaris – Warts and all ● IPS packaging ● X86 only (32 and 64 bit) ● General purpose ● JDS desktop ● Generally rather stale > OmniOS ● X86 only ● IPS packaging ● Server focus ● Supported commercial offering ● Stable components can be out of date > XStreamOS ● Modern variant of OpenIndiana ● X86 only ● IPS packaging ● Modern lightweight desktop options ● Extra applications – LibreOffice > SmartOS ● Hypervisor, not general purpose ● 64-bit x86 only ● Basis of Joyent cloud ● No inbuilt packaging, pkgsrc for applications ● Added extra features – KVM guests – Lots of zone features –
    [Show full text]
  • Datasette Documentation
    Datasette Documentation Simon Willison Sep 22, 2021 Contents 1 Contents 3 1.1 Getting started..............................................3 1.1.1 Play with a live demo......................................3 1.1.2 Try Datasette without installing anything using Glitch.....................3 1.1.3 Using Datasette on your own computer............................4 1.1.4 datasette –get..........................................5 1.1.5 datasette serve –help......................................6 1.2 Installation................................................7 1.2.1 Basic installation........................................7 1.2.2 Advanced installation options.................................8 1.3 The Datasette Ecosystem......................................... 10 1.3.1 sqlite-utils............................................ 11 1.3.2 Dogsheep............................................ 11 1.4 Pages and API endpoints......................................... 11 1.4.1 Top-level index......................................... 11 1.4.2 Database............................................ 12 1.4.3 Table.............................................. 12 1.4.4 Row............................................... 12 1.5 Publishing data.............................................. 13 1.5.1 datasette publish........................................ 13 1.5.2 datasette package........................................ 16 1.6 Deploying Datasette........................................... 17 1.6.1 Deployment fundamentals................................... 18 1.6.2
    [Show full text]
  • Serdar Temiz
    OPEN DATA AND INNOVATION ADOPTION: Lessons From Sweden Serdar Temiz Doctoral thesis submitted to the School of Industrial Engineering and Management for the fulfillment of the requirements for the degree of Ph.D. in Industrial Engineering and Management KTH Royal Institute of Technology School of Industrial Engineering and Management Department of Industrial Economics and Management SE-10044 Stockholm, Sweden OPEN DATA AND INNOVATION ADOPTION: LESSONS FROM SWEDEN ISBN 978-91-7873-083-4 © Temiz, Serdar, December 2018 [email protected] Academic thesis, with permission and approval of the KTH Royal Institute of Technology, is submitted for public review and doctoral examination in fulfillment of the requirements for the degree of Doctor of Phi- losophy in Industrial Engineering and Management on Monday, February 22, 2019, at 09:00 in Hall F3, Lindstedtsvägen 26, KTH, Stockholm, Sweden. Printed in Sweden, Universitetsservice US-AB ii Abstract The Internet has significantly reduced the cost of producing, accessing, and using data, with governments, companies, open data advocates, and researchers observing open data’s potential for promoting democratic and innovative solutions and with open data’s global market size estimated at billions of dollars in the European Union alone (Carrara, Chan, Fischer, & Steenbergen, 2015). This thesis explores the concept of open data, describing and analyzing how open data adoption occurs to better identify and understand key challenges in this process and thus contribute to better use of the available data resources
    [Show full text]
  • Latest/Contributing.Html 12 13 14
    v0.14+332.gd98c6648.dirty Handbook Introduction • Advanced topics • Use cases ADINA WAGNER &MICHAEL HANKE with Laura Waite, Kyle Meyer, Marisa Heckner, Benjamin Poldrack, Yaroslav Halchenko, Chris Markiewicz, Pattarawat Chormai, Lisa N. Mochalski, Lisa Wiersch, Jean-Baptiste Poline, Nevena Kraljevic, Alex Waite, Lya K. Paas, Niels Reuter, Peter Vavra, Tobias Kadelka, Peer Herholz, Alexandre Hutton, Sarah Oliveira, Dorian Pustina, Hamzah Hamid Baagil, Tristan Glatard, Giulia Ippoliti, Christian Mönch, Togaru Surya Teja, Dorien Huijser, Ariel Rokem, Remi Gau, Judith Bomba, Konrad Hinsen, Wu Jianxiao, Małgorzata Wierzba, Stefan Appelhoff, Michael Joseph, Tamara Cook, Stephan Heunis, Joerg Stadler, Sin Kim, Oscar Esteban CONTENTS I Introduction1 1 A brief overview of DataLad2 1.1 On Data..........................................2 1.2 The DataLad Philosophy.................................3 2 How to use the handbook5 2.1 For whom this book is written..............................5 2.2 How to read this book..................................5 2.3 Let’s get going!......................................8 3 Installation and configuration 10 3.1 Install DataLad...................................... 10 3.2 Initial configuration................................... 17 4 General prerequisites 19 4.1 The Command Line................................... 19 4.2 Command Syntax.................................... 20 4.3 Basic Commands..................................... 20 4.4 The Prompt........................................ 21 4.5 Paths..........................................
    [Show full text]
  • Linux User Group HOWTO Linux User Group HOWTO Table of Contents Linux User Group HOWTO
    Linux User Group HOWTO Linux User Group HOWTO Table of Contents Linux User Group HOWTO..............................................................................................................................1 Rick Moen...............................................................................................................................................1 1. Introduction..........................................................................................................................................1 1.1 Purpose...............................................................................................................................................1 1.2 Other sources of information.............................................................................................................2 2. What is a GNU/Linux user group?......................................................................................................2 2.1 What is GNU/Linux?.........................................................................................................................2 2.2 How is GNU/Linux unique?..............................................................................................................3 2.3 What is a user group?.........................................................................................................................3 2.4 Avoiding Burnout and Decline..........................................................................................................4 2.5 Summary............................................................................................................................................5
    [Show full text]
  • ZFS — and Why You Need It
    ZFS | and why you need it Nelson H. F. Beebe and Pieter J. Bowman University of Utah Department of Mathematics 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Email: [email protected], [email protected] 10 November 2016 Nelson H. F. Beebe and Pieter J. Bowman Why ZFS? 10 November 2016 1 / 26 What is ZFS? Zettabyte File System (ZFS) developed by Sun Microsystems from 2001 to 2005, with open-source release in 2005 (whence OpenZFS project): SI prefix zetta ≡ 10007 = 1021 Sun Microsystems acquired in 2010 by Oracle [continuing ZFS] ground-up brand-new filesystem design exceptionally clean and well-documented source code enormous capacity 28 ≈ 255 bytes per filename 248 ≈ 1014 files per directory 264 ≈ 1018 bytes per file [1 exabyte] 78 23 1 2 ≈ 10 ≈ 2 Avogadro's number bytes per volume disks form a pool of storage that is always consistent on disk disk blocks in pool allocatable to any filesystem using pool [relatively] simple management optional dynamic quota adjustment ACLs, snapshots, clones, compression, encryption, deduplication, case-[in]sensitive filenames, Unicode filenames, . Nelson H. F. Beebe and Pieter J. Bowman Why ZFS? 10 November 2016 2 / 26 Why use ZFS? ZFS provides a stable flexible filesystem of essentially unlimited capacity [in current technology] for decades to come we have run ZFS under Solaris for 11+ years, with neither data loss, nor filesystem corruption easy to implement n-way live mirroring [n up to 12 (??limit??)] snapshots, even in large filesystems, take only a second or so optional hot spares in each storage pool with ZFS zpool import, a filesystem can be moved to a different server, even one running a different O/S, as long as ZFS feature levels permit ZFS filesystems can be exported via FC, iSCSI, NFS (v2{v4) or SMB/CIFS to other systems, including those without native support for ZFS blocksize can be set in powers-of-two from 29 = 512 to 217 = 128K or with large blocks feature, to 220 = 1M; default on all systems is 128K.
    [Show full text]
  • Physics Computer Lab Manual
    Guide for the Physics Computing Lab (PCL) ∗ Richard Sonnenfeld † September 2011 Revised: August 2007, original version Richard Sonnenfeld February 2008 Jacob Trueblood February 2009 RS and JT September 2011 RS, August 2012 Contents 1 Lab Overview 3 1.1 PhysicsComputingLabGoals. ............ 3 1.1.1 WhyLinux?..................................... ..... 3 1.1.2 HowcanIlearnLinux? ............................ ....... 4 2 Details for Users 4 2.1 Logginginandout................................. ......... 4 2.2 Getting an account and changing your password . ................ 5 2.3 NFS-Mountedhomedirectories . ............. 6 2.4 Printing ........................................ ........ 6 2.5 RemoteAccess .................................... ........ 6 2.6 XwindowsMagic ................................... ........ 6 2.7 X-terminals ..................................... ......... 7 2.8 Backup .......................................... ...... 7 3 Details for new student office computers 7 3.1 BasicInstallationonOfficeComputers . ............... 8 3.2 After the basic installation on Office computers . .................. 9 3.3 Performingbackups ............................... .......... 10 ∗Thanks to Dave Raymond for most of the good ideas for setting up the lab. †Thanks to Victor Alvidrez for lots of hacking and for quick and dirty documentation. 1 4 Installation Details for PCL Administrators 11 4.1 Basicinstallationonclients . ............... 11 4.2 Afterthebasicinstallationonclients . .................. 11 5 System Administration 12 5.1 BurninginstallCDs
    [Show full text]
  • Build Your Own Paas with Docker Table of Contents
    Build Your Own PaaS with Docker Table of Contents Build Your Own PaaS with Docker Credits About the Author About the Reviewers www.PacktPub.com Support files, eBooks, discount offers, and more Why subscribe? Free access for Packt account holders Preface What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support Downloading the example code Errata Piracy Questions 1. Installing Docker What is Docker? Docker on Ubuntu Trusty 14.04 LTS Upgrading Docker on Ubuntu Trusty 14.04 LTS User permissions Docker on Mac OS X Installation Upgrading Docker on Mac OS X Docker on Windows Installation Upgrading Docker on Windows Docker on Amazon EC2 Installation Open ports Upgrading Docker on Amazon EC2 User permissions Displaying Hello World Summary 2. Exploring Docker The Docker image The Docker container The Docker command-line interface The Docker Registry Hub Browsing repositories Exploring published images Summary 3. Creating Our First PaaS Image The WordPress image Moving from the defaults Our objective Preparing for caching Raising the upload limit Plugin installation Making our changes persist Hosting image sources on GitHub Publishing an image on the Docker Registry Hub Automated builds Summary 4. Giving Containers Data and Parameters Data volumes Mounting a host directory as a data volume Mounting a data volume container Backing up and restoring data volumes Creating a data volume images Data volume image Exposing mount points The Dockerfile Hosting on GitHub Publishing on the Docker Registry Hub Running a data volume container Passing parameters to containers Creating a parameterized image Summary 5.
    [Show full text]
  • ZFS — and Why You Need It
    ZFS | and why you need it Nelson H. F. Beebe and Pieter J. Bowman University of Utah Department of Mathematics 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Email: [email protected], [email protected] 15 February 2017 Nelson H. F. Beebe and Pieter J. Bowman Why ZFS? 15 February 2017 1 / 26 What is ZFS? Zettabyte File System (ZFS) developed by Sun Microsystems from 2001 to 2005, with open-source release in 2005 (whence OpenZFS project): SI prefix zetta ≡ 10007 = 1021 Sun Microsystems acquired in 2010 by Oracle [continuing ZFS] ground-up brand-new filesystem design exceptionally clean and well-documented source code enormous capacity 28 ≈ 255 bytes per filename 248 ≈ 1014 files per directory 264 ≈ 1018 bytes per file [1 exabyte] 78 23 1 2 ≈ 10 ≈ 2 Avogadro's number bytes per volume disks form a pool of storage that is always consistent on disk disk blocks in pool allocatable to any filesystem using pool [relatively] simple management optional dynamic quota adjustment ACLs, snapshots, clones, compression, encryption, deduplication, case-[in]sensitive filenames, Unicode filenames, . Nelson H. F. Beebe and Pieter J. Bowman Why ZFS? 15 February 2017 2 / 26 Why use ZFS? ZFS provides a stable flexible filesystem of essentially unlimited capacity [in current technology] for decades to come we have run ZFS under Solaris for 11+ years, with neither data loss, nor filesystem corruption easy to implement n-way live mirroring [n up to 12 (??limit??)] snapshots, even in large filesystems, take only a second or so optional hot spares in each storage pool with ZFS zpool import, a filesystem can be moved to a different server, even one running a different O/S, as long as ZFS feature levels permit ZFS filesystems can be exported via FC, iSCSI, NFS (v2{v4) or SMB/CIFS to other systems, including those without native support for ZFS blocksize can be set in powers-of-two from 29 = 512 to 217 = 128K or with large blocks feature, to 220 = 1M; default on all systems is 128K.
    [Show full text]
  • Mpcotool (The Multi-Purposes Calibration and Optimization Tool): an Open Source Software to Supply Empirical Parameters Required in Simulation Models
    MPCOTool (the Multi-Purposes Calibration and Optimization Tool): an open source software to supply empirical parameters required in simulation models Software authors: J. Burguete and B. Latorre Manual authors: J. Burguete, P. Garc´ıa-Navarro and S. Ambroj April 5, 2017 Contents 1 Building from the source code 2 2 Interface 5 2.1 Commandlineformat ........................ 5 2.2 UsingMPCOToolasanexternallibrary . 6 2.3 Interactive graphical user interface application . ...... 6 2.4 Inputfiles............................... 7 2.4.1 Maininputfile ........................ 7 2.4.2 Templatefiles......................... 10 2.5 Outputfiles.............................. 11 2.5.1 Resultsfile .......................... 11 2.5.2 Variablesfile ......................... 11 3 Organization of MPCOTool 12 4 Optimization methods 14 4.1 Sweepbruteforcemethod . 14 4.2 Monte-Carlomethod . 15 4.3 Iterative algorithm applied to brute force methods . 15 4.4 Directionsearchmethod . 17 4.4.1 Coordinatesdescent . 19 4.4.2 Random............................ 19 4.5 Geneticmethod............................ 19 4.5.1 Thegenome.......................... 19 4.5.2 Survivalofthebestindividuals . 21 4.5.3 Mutationalgorithm . 21 4.5.4 Reproductionalgorithm . 22 4.5.5 Adaptationalgorithm . 22 4.5.6 Parallelization . 23 References 24 1 Chapter 1 Building from the source code The source code in MPCOTool is written in C language. This software has been built and tested in the following operative systems: • Debian Hurd, kFreeBSD and Linux 8; • DragonFly BSD 4.6; • Dyson Illumos; • Fedora Linux 25; • FreeBSD 11.0; • Microsoft Windows 71, 8.11 and 101; • NetBSD 7.0; • OpenBSD 6.0; • OpenIndiana Hipster; • OpenSUSE Tumbleweed; • and Ubuntu Linux 16.10. Probably, this software can be built and it works in other operative systems, software distributions or versions but it has not been tested.
    [Show full text]
  • The Multi-Purposes Calibration and Optimization Tool): an Open Source Software to Supply Empirical Parameters Required in Simulation Models
    MPCOTool (the Multi-Purposes Calibration and Optimization Tool): an open source software to supply empirical parameters required in simulation models Software authors: J. Burguete and B. Latorre Manual authors: J. Burguete, P. Garc´ıa-Navarro and S. Ambroj July 20, 2017 Contents 1 Building from the source code 2 2 Interface 5 2.1 Commandlineformat ........................ 5 2.2 UsingMPCOToolasanexternallibrary . 6 2.3 Interactive graphical user interface application . ...... 6 2.4 Inputfiles............................... 7 2.4.1 Maininputfile ........................ 7 2.4.2 Templatefiles......................... 10 2.5 Outputfiles.............................. 11 2.5.1 Resultsfile .......................... 11 2.5.2 Variablesfile ......................... 11 3 Organization of MPCOTool 12 4 Optimization methods 14 4.1 Sweepbruteforcemethod . 14 4.2 Monte-Carlomethod . 15 4.3 Iterative algorithm applied to brute force methods . 15 4.4 Directionsearchmethod . 17 4.4.1 Coordinatesdescent . 19 4.4.2 Random............................ 19 4.5 Geneticmethod............................ 19 4.5.1 Thegenome.......................... 19 4.5.2 Survivalofthebestindividuals . 21 4.5.3 Mutationalgorithm . 21 4.5.4 Reproductionalgorithm . 22 4.5.5 Adaptationalgorithm . 22 4.5.6 Parallelization . 23 References 24 1 Chapter 1 Building from the source code The source code in MPCOTool is written in C language. This software has been built and tested in the following operative systems: • Debian Hurd, kFreeBSD and Linux 9; • DragonFly BSD 4.8; • Dyson Illumos; • Fedora Linux 26; • FreeBSD 11.0; • Microsoft Windows 71, 8.11 and 101; • NetBSD 7.0; • OpenBSD 6.1; • OpenIndiana Hipster; • OpenSUSE Tumbleweed; • and Ubuntu Linux 17.04. Probably, this software can be built and it works in other operative systems, software distributions or versions but it has not been tested.
    [Show full text]