Abstraction and Implementation of Unstructured Grid Algorithms on Massively Parallel Heterogeneous Architectures

Total Page:16

File Type:pdf, Size:1020Kb

Abstraction and Implementation of Unstructured Grid Algorithms on Massively Parallel Heterogeneous Architectures DOI:10.15774/PPKE.ITK.2014.003 ABSTRACTION AND IMPLEMENTATION OF UNSTRUCTURED GRID ALGORITHMS ON MASSIVELY PARALLEL HETEROGENEOUS ARCHITECTURES István Zoltán Reguly A thesis submitted for the degree of Doctor of Philosophy Pázmány Péter Catholic University Faculty of Information Technology Supervisors: András Oláh Ph.D. Zoltán Nagy Ph.D. Budapest, 2014 DOI:10.15774/PPKE.ITK.2014.003 I would like to dedicate this work to my loving family. ii DOI:10.15774/PPKE.ITK.2014.003 Acknowledgements First of all, I am most grateful to my supervisors, Dr. András Oláh and Dr. Zoltán Nagy for their motivation, guidance, patience and support, as well as Prof. Tamás Roska for the inspiring and thought-provoking discussions that led me down this path. I thank Prof. Barna Garay for all his support, for being a pillar of good will and honest curiosity. I am immensely grateful to Prof. Mike Giles for welcoming me into his research group during my stay in Oxford, for guiding and supporting me, and for opening up new horizons. I would like to thank all my friends and colleagues with whom I spent these past few years locked in endless debate; Csaba Józsa for countless hours of discussion, Gábor Halász, Helga Feiszthuber, Endre László, Gihan Mudalige, Carlo Bertolli, Fabio Luporini, Zoltán Tuza, János Rudan, Tamás Zsedrovits, Gábor Tornai, András Horváth, Dóra Bihary, Bence Borbély, Dávid Tisza and many others, for making this time so much enjoyable. I thank the Pázmány Péter Catholic University, Faculty of Information Technology, for accepting me as a doctoral student and supporting me throughout, and the University of Oxford, e-Research Centre. I am thankful to Jon Cohen, Robert Strzodka, Justin Luit- jens, Simon Layton and Patrice Castonguay at NVIDIA for the summer internship, while working on AmgX together I have learned a tremendous amount. Finally, I will be forever indebted to my family, enduring my presence and my absence, and for being supportive all the while, helping me in every way imaginable. iii DOI:10.15774/PPKE.ITK.2014.003 Kivonat Lassan tíz éve már hogy a processzorok órajelének folyamatos növekedése - és ezzel a frekvencia-skálázódásnak köszönhető teljesítmény-növekedés - véget ért. Ez arra kénysze- rítette a gyártókat, hogy a számítási kapacitás elvárt növekedését más eszközökkel tartsák fenn. Megkezdődött a processzormagok számának növekedése, megjelentek a többszintű memória-architektúrák, a vezérlő áramkörök egyre bonyolultabbá váltak, új architektúrák, segédprocesszorok, programozási nyelvek és párhuzamos programozási technikák sokasága jelent meg. Ezek a megoldások a teljesítmény növelését, a hatékony programozhatósá- got és az általános-célú felhasználást hivatottak biztosítani. A modern számítógépeken a számítási kapacitás ilyen módon való növelésének azonban a - tipikusan nagyméretű - adatállományok gyors mozgatása szab határt. Ugyancsak korlátozó tényező, hogy a tu- dományos számítások területén dolgozók még mindig az évtizedekkel ezelőtt bevezetett - jól bevált és tesztelt - programozási nyelveket és a bennük implementált módszereket kí- vánják használni. Ezektől a kutatóktól nem elvárható, hogy a saját szakterületükön kívül még az új hardverek és új programozási módszerek terén is mély ismeretekre tegyenek szert. Ugyanakkor ezek mélyreható ismerete nélkül egyre kevésbé aknázható ki az új hard- verekben rejlő egyre magasabb potenciál. Az informatika-tudományok kutatói – köztük jelen dolgozat szerzője is – arra vállalkoznak, hogy az új hardverekkel és programozási módszerekkel kapcsolatos tapasztalataikat, eredményeiket olyan formába öntsék – illetve olyan absztrakciós szinteket definiáljanak – amely lehetővé teszi a más kutatási területeken dolgozók számára a folyamatosan növekedő számítási kapacitások hatékony kihasználását. Hosszú évtizedek kutatásai ellenére a mai napig nincs olyan általános célú gépi fordító mely a régi, soros kódokat automatikusan képes lenne hatékonyan párhuzamosítani és a modern hardvereket hatékonyan kihasználva futtatni. Ezért az elmúlt időszak kutatásai egy-egy jól körülhatárolható probléma osztályt céloznak meg – sűrű és ritka lineáris algeb- ra, strukturált és nem-strukturált térhálók, soktest problémák, Monte Carlo. Kutatásom céljának – a fenti törekvésekkel összhangban – a nem-strukturált térhálókon értelmezett algoritmusokat választottam. A nem-strukturált térhálókat rendszerint olyan parciális dif- iv DOI:10.15774/PPKE.ITK.2014.003 ferenciálegyenletek diszkretizált megoldásánál használják ahol az értelmezési tartomány szerkezete rendkívül bonyolult és a megoldás során különböző területeken különböző tér- beli felbontásra van szükség. Tipikus mérnöki problémák – amelyek a nem-strukturált térhálók segítségével oldhatók meg – például a sekélyvízi szimulációk összetett partvonal mentén, vagy repülőgépek sugárhajtóművének áramlástani szimulációja a lapátok körül. Kutatásomat a programozhatóság jelen kori nagy kihívásai motiválták: a párhuzamos- ság, az adatlokalitás, a teherelosztás és a hibatűrés. A disszertációm célja az, hogy bemu- tassa a nem-strukturált térhálókon értelmezett algoritmusokkal kapcsolatos kutatásaimat. Kutatásaim során különböző absztrakciós szintekről kiindulva vizsgálom a nem-strukturált térhálókkal kezelhető probléma megoldásokat. Ezen eredményeimet végül számítógépes kódra képeztem le, különös figyelmet szentelve a különböző absztrakciós szintek, a prog- ramozási modellek, a végrehajtási modellek és a hardver architektúrák összhangjának. Futtatási eredményekkel bizonyítom, hogy a modern heterogén architektúrákon jelenlévő párhuzamosság és memória-hierarchia hatékonyan kihasználható kutatási eredményeim felhasználásával. Munkám első része a végeselem-módszert vizsgálja, amely egy magasabb absztrakciós szintet jelent a dolgozat többi részéhez viszonyítva. Ez lehetővé tette, hogy egy magasabb szinten alakítsam ezt a numerikus módszert a modern párhuzamos architektúrák adottsá- gait figyelembe véve. Kutatásom megmutatja hogy a végeselem integráció különböző for- mulációival a memóriamozgatást és tárigényt csökkenteni lehet redundáns számításokért cserébe, mely az erőforrásokban szűk GPU-k esetén képes magas teljesítményt adni, még magasrendű elemek esetén is. Ezt követően megvizsgálom az adatstruktúrák problémáját, és megmutatom hogy egy, a végeselem-módszerekre felírt struktúra, hogyan használható fel a számítások különböző fázisaiban, valamint levezetem a memória-mozgatás mennyiségét, és mérések segítségével bizonyítom, hogy a GPU architektúrán magasabb teljesítményt képes elérni. Végül a ritka mátrixok és vektorok szorzatának párhuzamos architektúrákra való leképzését vizsgálom, megadok egy heurisztikát és egy gépi tanulási eljárást mely az optimális paramétereket képesek megtalálni általános ritka mátrixok esetén is. A második részben – az első rész aránylag szűk kutatási területét kibővítettem, és – azokat az általános nem-strukturált térhálókon értelmezett algoritmusokat vizsgáltam, melyek az OP2 Domain Specific Language (DSL) [16] által definiált absztrakcióval leír- hatóak. Ez az absztrakciós szint alacsonyabb, mint az első részben a végeselem-módszer esetében alkalmazott absztrakciós szint, ezért a numerikus módszerek magasabb szintű átalakítására itt nincs lehetőség. Ugyanakkor az OP2 ezen absztrakciója által lefedett te- v DOI:10.15774/PPKE.ITK.2014.003 rület lényegesen szélesebb, így magában foglalja a végeselem-módszert, de emellett sok más algoritmust is, így például a véges térfogat módszert is. Kutatásom második része az OP2 absztrakciós szintjén definiált algoritmusok magas szintű transzformációival foglalko- zik. Azt vizsgálja, hogy hogyan lehet a – tipikusan lineárisan megfogalmazott – számítási algoritmusok végrehajtását párhuzamos architektúrára transzformálni oly módon, hogy az adatlokalitás, a hibatűrés és az erőforrások kihasználtságának problémáját is megold- juk. Ezen az absztrakciós szinten a kutatásaim még nem veszik figyelembe azt, hogy a végrehajtás milyen hardveren valósul meg. Ennek megfelelően a második rész eredményei megfelelő implementációs paraméterezéssel bármely végrehajtási környezetben felhasznál- hatóak. Elsőként egy teljesen automatizált algoritmust adok meg, mely képes megtalálni a végrehajtás során azt a pontot ahol az állapottér a legkisebb, elmenti azt, majd meghibá- sodás esetén képes attól a ponttól folytatni a számításokat. Ezek után általános megoldást adok a nem-struktúrált térhálókon értelmezett számítások olyan átszervezésére, mely az adatelérésekben lévő időbeli lokalitást javítja azzal, hogy egyszerre csak a probléma ki- sebb részén hajtja végre a számítások sorozatát - ú.n. "cache blocking" technikán alapulva. Megvizsgálom továbbá a mai heterogén rendszerek kihasználásának kérdését is, melyekben rendszerint több, eltérő tulajdonságokkal rendelkező hardver van. Megadok egy modellt a nem-struktúrált térhálón értelmezett algoritmusok heterogén végrehajtására, melyet az OP2-ben való implementációval igazolok. Végül kutatásom harmadik része azzal foglalkozik, hogy az OP2 absztrakciós szintjén definiált algoritmusok miképp képezhetőek le különböző alacsonyabb szintű programozá- si nyelvekre, végrehajtási modellekre és hardver architektúrákra. Leképezéseket definiá- lok, amelyeknek segítségével a számításokat egymásra rétegzett párhuzamos programozási absztrakciókon keresztül a mai modern, heterogén számítógépeken optimálisan végre lehet hajtani, kihasználva az összetett memória-hierarchiát és a többszintű párhuzamosságot. Először bemutatom, hogy a végrehajtás miképp képezhető le GPU-kra, a CUDA progra- mozási nyelv által,
Recommended publications
  • Release Notes for Fedora 20
    Fedora 20 Release Notes Release Notes for Fedora 20 Edited by The Fedora Docs Team Copyright © 2013 Fedora Project Contributors. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. For guidelines on the permitted uses of the Fedora trademarks, refer to https:// fedoraproject.org/wiki/Legal:Trademark_guidelines. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries. All other trademarks are the property of their respective owners.
    [Show full text]
  • Release 0.11 Todd Gamblin
    Spack Documentation Release 0.11 Todd Gamblin Feb 07, 2018 Basics 1 Feature Overview 3 1.1 Simple package installation.......................................3 1.2 Custom versions & configurations....................................3 1.3 Customize dependencies.........................................4 1.4 Non-destructive installs.........................................4 1.5 Packages can peacefully coexist.....................................4 1.6 Creating packages is easy........................................4 2 Getting Started 7 2.1 Prerequisites...............................................7 2.2 Installation................................................7 2.3 Compiler configuration..........................................9 2.4 Vendor-Specific Compiler Configuration................................ 13 2.5 System Packages............................................. 16 2.6 Utilities Configuration.......................................... 18 2.7 GPG Signing............................................... 20 2.8 Spack on Cray.............................................. 21 3 Basic Usage 25 3.1 Listing available packages........................................ 25 3.2 Installing and uninstalling........................................ 42 3.3 Seeing installed packages........................................ 44 3.4 Specs & dependencies.......................................... 46 3.5 Virtual dependencies........................................... 50 3.6 Extensions & Python support...................................... 53 3.7 Filesystem requirements........................................
    [Show full text]
  • Zenworks Agent Reference
    ZENworks® 2017 Update 4 ZENworks Agent Reference January 2019 Legal Notice For information about legal notices, trademarks, disclaimers, warranties, export and other use restrictions, U.S. Government rights, patent policy, and FIPS compliance, see https://www.novell.com/company/legal/. © Copyright 2008 - 2019 Micro Focus or one of its affiliates. The only warranties for products and services of Micro Focus and its affiliates and licensors (“Micro Focus”) are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. Micro Focus shall not be liable for technical or editorial errors or omissions contained herein. The information contained herein is subject to change without notice. About This Guide This ZENworks Agent Reference provides information to help you perform administrative tasks related to the ZENworks Agent. The information in this guide is organized as follows: Chapter 1, “Introduction,” on page 7 Chapter 2, “Viewing the Version of the ZENworks Agent Software and Modules on a Device,” on page 9 Chapter 3, “Searching for Devices that Have a Specified Version of the ZENworks Agent,” on page 11 Chapter 4, “Configuring ZENworks Agent Settings after Deployment,” on page 13 Chapter 5, “Configuring ZENworks Explorer,” on page 29 Chapter 6, “Removing the ZENworks Pre-Agent from a Device,” on page 31 Chapter 7, “Configuring the System Update Behavior of the ZENworks Agent,” on page 33 Chapter 8, “Customizing the Look and Feel of the ZENworks Icon,” on page 35 Chapter 9, “Troubleshooting the ZENworks Agent,” on page 37 Appendix A, “RPMs for the Linux ZENworks Agent,” on page 45 Audience This guide is intended for ZENworks administrators.
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • Release Notes for Fedora 17
    Fedora 17 Release Notes Release Notes for Fedora 17 Edited by The Fedora Docs Team Copyright © 2012 Fedora Project Contributors. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. For guidelines on the permitted uses of the Fedora trademarks, refer to https:// fedoraproject.org/wiki/Legal:Trademark_guidelines. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries. All other trademarks are the property of their respective owners.
    [Show full text]
  • 1. Why POCS.Key
    Symptoms of Complexity Prof. George Candea School of Computer & Communication Sciences Building Bridges A RTlClES A COMPUTER SCIENCE PERSPECTIVE OF BRIDGE DESIGN What kinds of lessonsdoes a classical engineering discipline like bridge design have for an emerging engineering discipline like computer systems Observation design?Case-study editors Alfred Spector and David Gifford consider the • insight and experienceof bridge designer Gerard Fox to find out how strong the parallels are. • bridges are normally on-time, on-budget, and don’t fall ALFRED SPECTORand DAVID GIFFORD • software projects rarely ship on-time, are often over- AS Gerry, let’s begin with an overview of THE DESIGN PROCESS bridges. AS What is the procedure for designing and con- GF In the United States, most highway bridges are budget, and rarely work exactly as specified structing a bridge? mandated by a government agency. The great major- GF It breaks down into three phases: the prelimi- ity are small bridges (with spans of less than 150 nay design phase, the main design phase, and the feet) and are part of the public highway system. construction phase. For larger bridges, several alter- There are fewer large bridges, having spans of 600 native designs are usually considered during the Blueprints for bridges must be approved... feet or more, that carry roads over bodies of water, preliminary design phase, whereas simple calcula- • gorges, or other large obstacles. There are also a tions or experience usually suffices in determining small number of superlarge bridges with spans ap- the appropriate design for small bridges. There are a proaching a mile, like the Verrazzano Narrows lot more factors to take into account with a large Bridge in New Yor:k.
    [Show full text]
  • Fotografía Digital En Linux. O De Cómo Combinar Dos Pasiones Tecnológicas Sin Perder La Razón En El Intento
    Número 12 DICIEMBRE 2007 Fotografía digital en Linux. O de cómo combinar dos pasiones tecnológicas sin perder la razón en el intento. Crear distribuciones Calendario de linux basadas en Eventos Knoppix ¡¡Deja de pelear con tu Tarro, y usa Software Libre!! Entendiendo ADO.NET con C#, Mono y PostgreSQL (II) BEGINS 12 I DICIEMBRE 2007 Editorial Linux se está volviendo muy popular entre los usuarios del PC. De hecho, hay quien piensa que Redacción “demasiado” popular. Que quizá no sea bueno que se Ricardo Gabriel Berlasso [email protected] mrcomputer [email protected] generalice su uso para evitar caer en los mismos errores de Martin Marquez [email protected] Marcelo Ortiz [email protected] Windows. No es la opinión de quienes formamos Begins. Rodrigo Ramírez [email protected] Óscar Calle [email protected] Sin embargo, es oportuno aquí recordar nuestros orígenes Álex Sandoval [email protected] para no perder de vista nuestros objetivos. En el principio de todo el movimiento libre hubo un Revisión y corrección “loco”, (con todo el respeto) llamado Richard Matthew Éric Báez [email protected] Stallman, que inició GNU y la idea del Software Libre. Nadie Óscar Calle [email protected] pensaba que eso tuviese futuro. ¿Nadie? Staff y Coordinación Años después, de la mano del finlandés Linus Luis Álvarez [email protected] Torvalds, Linux nació libre, como producto de la Óscar Calle [email protected] Dionisio Fernández [email protected] colaboración entre los internautas y con el fin de conseguir Álvaro Parra [email protected] Rodrigo Ramírez [email protected] un entorno compatible con los sistemas UNIX, pero sin Álex Sandoval Morales [email protected] Éric Báez Bezama [email protected] tener que desembolsar el dineral que suponían sus licencias.
    [Show full text]
  • Licensing Information User Manual Oracle Solaris 11.3 Last Updated September 2018
    Licensing Information User Manual Oracle Solaris 11.3 Last Updated September 2018 Part No: E54836 September 2018 Licensing Information User Manual Oracle Solaris 11.3 Part No: E54836 Copyright © 2018, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • The Buildroot User Manual I
    The Buildroot user manual i The Buildroot user manual The Buildroot user manual ii Contents I Getting started 1 1 About Buildroot 2 2 System requirements 3 2.1 Mandatory packages.................................................3 2.2 Optional packages...................................................4 3 Getting Buildroot 5 4 Buildroot quick start 6 5 Community resources 8 II User guide 9 6 Buildroot configuration 10 6.1 Cross-compilation toolchain............................................. 10 6.1.1 Internal toolchain backend.......................................... 11 6.1.2 External toolchain backend.......................................... 11 6.1.2.1 External toolchain wrapper.................................... 12 6.2 /dev management................................................... 13 6.3 init system....................................................... 13 7 Configuration of other components 15 8 General Buildroot usage 16 8.1 make tips....................................................... 16 8.2 Understanding when a full rebuild is necessary................................... 17 8.3 Understanding how to rebuild packages....................................... 18 8.4 Offline builds..................................................... 18 8.5 Building out-of-tree.................................................. 18 The Buildroot user manual iii 8.6 Environment variables................................................ 19 8.7 Dealing efficiently with filesystem images...................................... 19 8.8 Graphing the dependencies
    [Show full text]
  • Run the Last Command As Root Sudo !! # Serve Current Directory Tree At
    # Run the last command as root sudo !! # Serve current directory tree at http://$HOSTNAME:8000/ python m SimpleHTTPServer # Save a file you edited in vim without the needed permissions :w !sudo tee % # change to the previous working directory cd # Runs previous command but replacing ^foo^bar # mtr, better than traceroute and ping combined mtr google.com # quickly backup or copy a file with bash cp filename{,.bak} # Rapidly invoke an editor to write a long, complex, or tricky command ctrlx e # Copy ssh keys to user@host to enable passwordless ssh logins. $sshcopyid user@host # Empty a file > file.txt # Execute a command without saving it in the history <space>command # Capture video of a linux desktop ffmpeg f x11grab s wxga r 25 i :0.0 sameq /tmp/out.mpg # Salvage a borked terminal reset # start a tunnel from some machine's port 80 to your local post 2001 ssh N L2001:localhost:80 somemachine # Execute a command at a given time echo "ls l" at midnight # Query Wikipedia via console over DNS dig +short txt <keyword>.wp.dg.cx # currently mounted filesystems in nice layout mount column t # Update twitter via curl curl u user:pass d status="Tweeting from the shell" http://twitter.com/statuse s/update.xml # Place the argument of the most recent command on the shell 'ALT+.' or '<ESC> .' # output your microphone to a remote computer's speaker dd if=/dev/dsp ssh c arcfour C username@host dd of=/dev/dsp # Lists all listening ports together with the PID of the associated process netstat tlnp # Mount a temporary ram partition mount t tmpfs tmpfs /mnt o size=1024m # Mount folder/filesystem through SSH sshfs name@server:/path/to/folder /path/to/mount/point # Runs previous command replacing foo by bar every time that foo appears !!:gs/foo/bar # Compare a remote file with a local file ssh user@host cat /path/to/remotefile diff /path/to/localfile # Quick access to the ascii table.
    [Show full text]
  • Mac Secret Manual
    00M Mac TOP Secret Manual Keep calm Is only a machine By alberto pickering brunel First Edition A4 Everething is written somewhere ; ) applesn# :) applesn# :) Autographs Keep calm is only a machine -Handy simple Macintosh manual Keep calm is only a machine -Handy simple Macintosh manual Keep calm Is only a machine By alberto pickering brunel Do You forgot your password? Do you have a pen? Did you change the keyboard Language? Wrong Configuration, New install? Pirate, Hacker, new Gov Attack? Aliens, Children, Partner, Friends, Pets? Service phone call? Hardware, temperature, humidity? Power, cables? First Edition Water, Food, are You Hungry? A4 ? Written somewhere in the ocean pacific coast My mac Serial Number is Firmware Root Admin Disk Airport/Router/Modem Admin. WiFi Model Name: User: ModelIdentifier: Disk: Processor Name: Partition: Processor Speed: Number of Processors: User: Total Number of Cores: Disk: Total Memory: Partition: Boot ROM Version: SMCVersion(system): User: Serial Number (system): Disk: Hardware UUID: Partition: Storage/ Cards / etc: User: Disk: Partition: Original Language: 2 ® Desktop Publishing ® Desktop Publishing 3 < Doc > May 24, 2021 <Printed> May 25, 2021 ©alberto pickering brunel mmxxi written in the ocean pacific coast < Doc > May 24, 2021 <Printed> May 25, 2021 ©alberto pickering brunel mmxxi written in the ocean pacific coast of 44 of 44 applesn# :) applesn# :) Keep calm is only a machine -Handy simple Macintosh manual Keep calm is only a machine -Handy simple Macintosh manual Tout ce que nous avons écrit
    [Show full text]
  • Licensing Information User Manual Oracle Solaris 11.4
    Licensing Information User Manual Oracle Solaris 11.4 Part No: E61065 August 2018 Licensing Information User Manual Oracle Solaris 11.4 Part No: E61065 Copyright © 2015, 2018, Oracle and/or its affiliates. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial computer software documentation" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract.
    [Show full text]