PIAS Handleiding  2024
Programma voor de Integrale Aanpak van het Scheepsontwerp
Installatiedetails
In dit hoofdstuk staan aanvullende eigenschappen en functies van PIAS beschreven. De gewone gebruiker kan dit hoofdstuk overslaan, maar als men op zoek is naar installatiedetails of specifieke functies dan wordt aangeraden dit eens door te nemen.

Aanvullende installatie en update details van de Codemeter software beveiliging

In Codemeter (vanaf 2017) is een introductie gegeven van de Codemeter software beveiligingsvoorziening. Dit hoofdstuk bespreekt de installatie en update procedure daarvan.

Codemeter installatie

PIAS is beschermd door middel van een hardware lock van type Codemeter van producent Wibu-systems. Het lock kan direct gebruikt worden in een lokale PC, of in een PC in het netwerk/LAN (server) en de licenties zijn beschikbaar voor alle computers die deel uitmaken van dit netwerk (clients). Er is een stuurprogramma (driver) nodig, die de communicatie mogelijk maakt tussen (de geïnstalleerde) PIAS software en het lock. Hieronder worden de stappen beschreven van de installatie van dit stuurprogramma:

  • Download het stuurprogramma (Codemeter Runtime-systeem).
  • Selecteer CodeMeter User runtime for Windows.
  • Installeer de gedownloade software op [a] de netwerk-pc die als licentieserver fungeert en [b] de clientcomputers die PIAS draaien. Houd er rekening mee dat [a] en [b] fysiek dezelfde PC kunnen zijn.
  • Als [a] en [b] verschillende computers zijn dan gaat u als volgt te werk:
    • Na de installatie plaatst u het lock in [a] en opent u het Codemeter Control Center. Klik rechts onder in het venster op Webadmin.
    • Klik in de WebAdmin op Configuration Server.
    • Onder sectie Network Server selecteert u enable.
    • Klik op Toepassen. Noteer het IP-adres of de hostnaam van de server. Open nu op [b] het Codemeter Control Center. Klik rechtsonder in het venster op Webadmin. In Webadmin, Klik op Configuration, Basic. Onder sectie Server search list klik op Add.
    • Typ het IP-adres of de hostnaam van de server (verkregen in de vorige stap) en klik op Apply.
    ls deze installatie niet gedaan is dan kan het Codemeter systeem op zich best functioneren, zij het dat iedere keer als communicatie met het lock nodig is het hele netwerk wordt afgezocht naar dat ding, wat de programmawerking nehoorlijk traag kan maken. Het verdient dus aanbeveling deze stappen secuur te doorlopen.
  • Als [a] en [b] fysiek dezelfde computer zijn, voer dan deze stappen uit:
    • Na installatie van het codemeter runtime-systeem, plaatst u het lock en open dan het Codemeter Control Center op de PC.
    • Klik rechts onder in het venster op Webadmin.
    • Klik in de WebAdmin op Configuration, Basic.
    • Onder sectie Server search list klik op Add. In het invoerveld typ 127.0.0.1 (of &ldquolocalhost”) en klik op Apply. Op verzoek van de klant kan het licentiesysteem worden uitgerust met een (server-specifiek) licentiebestand in plaats van een hardware lock. Dit verandert niets aan de installatieprocedure (afgezien van het feit dat het lock ontbreekt).

Codemeter licentie update

Licenties kunnen op afstand door SARC (tijdelijk) aan of uitgezet of toegevoegd worden. Dit mechanisme werkt als volgt: Een PIAS gebruiker maakt allereerst een license requests file. Deze file stuurt de gebruiker vervolgens (per email) naar SARC. SARC maakt op basis van deze request file een license update file en stuurt deze (per email) terug naar de PIAS gebruiker. Deze kan met deze file de licenties updaten. De preciese procedure wordt hieronder beschreven:

  • Open het Codemeter Control Center op de PC waarin de licentie (dongle) geplaatst is.
  • Selecteer de stick welke aangepast/geupdate dient te worden en klik op Update licence.
  • Klik Next.
  • Klik Create license request.
  • Klik Next.
  • Klik Extend existing license.
  • Selecteer Vendor “SARC”.
  • Klik Next.
  • Kijk waar de license request file wordt opgeslagen en pas deze locatie desgewenst aan (extension .wibuCmRaC).
  • Klik Commit.
  • Stuur deze license request file naar SARC (per email).
  • Op basis van deze file maakt SARC een update file met de gewenste licentie aanpassingen (extension .wibuCmRaU) en stuurt deze terug naar de PIAS gebruiker.
  • Sleep deze file in het Codemeter Control Center en de licentie update automatisch. Als de update is doorgevoerd verschijnt een melding op het scherm dat de update succesvol was.

Aanvullende installatiedetails van Sentinel hardware lock

In Sentinel (tot 2017) is een introductie gegeven van het Sentinel lock. In dit hoofdstuk staan wat nadere technische installatiedetails.

Benodigde DLL

Voor de communicatie tussen de PIAS programma's en de Sentinel is het bestand sx32w.DLL benodigd. Deze DLL moet beschikbaar zijn op de locatie waar de PIAS programma's zich bevinden). Bij de installatie van PIAS wordt deze DLL automatisch en op de juiste plek neergezet.

Netwerk Sentinel SuperPro

De Netwerk Sentinel Superpro is een hardwarelock welke in een netwerk gebruikt kan worden. Deze Sentinel wordt in een van de computers van het netwerk geplaats en andere computers kunnnen dan over het netwerk licenties opvragen aan deze sentinel. Op deze wijze is PIAS dan over het hele netwerk beschikbaar, zonder dat steeds een hardware lock tussen de verschillende computers moet worden uitgewisseld, zoals dat bij een gewone Sentinel SuperPro het geval is. Op de computer waar de netwerk Sentinel SuperPro geplaatst is, moet een programma geïnstalleerd worden welke de de verbinding verzorgt tussen de Sentinel en het netwerk. Dat programma heet ‘Sentinel protection server’. Dit programma kan worden gedownload van de Safenet download site of via een directe link op de SARC website, www.sarc.nl/download. De server staat toe dat een maximaal een aantal PIAS modules gelijktijdig wordt gebruikt dat overeenkomt met het maximum aantal beschikbare gebruiksrechten. Elke PIAS module telt daarbij, ongeacht of ze op dezelfde computer werken of op verschillende computers.

Handleiding en utilities

Vanaf www.safenet-inc.com kan men handleidingen en utilities voor de (Netwerk-) Sentinel SuperPro downloaden. De handleiding is ook beschikbaar via SafeNet User Guide.pdf. Een nuttige utility is ‘Safenet Sentinel AdvancedMedic’. Hiermee kan worden gekeken of de benodigde driver en server juist zijn geïnstalleerd. Een andere utility is ‘Monitor’, waarmee zichtbaar gemaakt kan worden hoeveel gebruiksrechten al in gebruik genomen zijn.

Mogelijke problemen Sentinel

Hangende gebruiksrechten
Een PIAS module vraagt aan de Sentinel of er nog een gebruiksrecht vrij is, en neemt er een in gebruik als dat kan. Bij het stoppen van het programma wordt dat gebruiksrecht weer vrijgegeven. Als een PIAS programma wordt afgesloten (zelfs als het via <Crtl-Alt-Del> uit de takenlijst verwijderd wordt), krijgt de sentinel van het operating system altijd een seintje dat het programma beëindigd is, zodat de gebruiksrechten dan correct vrijgegeven worden. Als een programma hardwarematig beëindigd wordt (bv. met de reset toets, of door de computer pardoes uit te zetten) dan wordt het gebruiksrecht niet vrijgegeven en is men dus één gebruiksrecht kwijt. Het systeem bevat echter een tijdmechanisme waardoor na ongeveer 1½ minuut dat hangende gebruiksrecht weer vrijgegeven wordt.
Sentinel wordt niet gevonden
Indien de sentinel niet wordt gevonden, geeft het programma een foutmelding. Hieronder een aantal mogelijke oorzaken van dit probleem:
  • Windows firewall of anti-virus software kan mogelijk de communicatie van de PIAS programmas met de sentinel blokkeren. U dient deze software dan zodanig te configureren dat de PIAS programma's met de sentinel kunnen communiceren.
  • In een netwerk omgeving kan het zijn dat het erg lang duurt voordat er contact is met de sentinel of dat de sentinel helemaal niet wordt gevonden. Met de externe variable (zie Externe variabelen) SENTINEL_SERVER = IP ADRES kunt u opgeven in welk systeem (althans, het IP adres daarvan) de Sentinel is gestoken. De sentinel software zoekt dan voor het opvragen van een licentie niet het hele netwerk af, maar maakt direct verbinding met de aangewezen computer.

PIAS distributie

Distributiekanaal

Updates van PIAS kunt u op twee manieren verkrijgen:

  • Inloggen op de download sectie van SARC's website. Een loginnaam en bijbehorend password is of wordt u verstrekt.
  • Bij SARC een memorystick bestellen tegen onkostenvergoeding.

Het verder distribueren over uw eigen computer netwerk moet u verder zelf verzorgen. Dat zal best te doen zijn, maar als PIAS op veel werkkstations geïnstalleerd moet worden dan is dat toch steeds een klusje. Om u dat werk uit handen te nemen kan PIAS dat automatisch verzorgen. Bij SARC is een document te verkrijgen waarin de werking daarvan beschreven is.

Versienummers en aanmaakdatum

PIAS' help menu (zie Help) bevat twee functies om software aanmaakdatum (compilatiedatum) en versienummer (revisienummer) op te vragen. Aan de hand daarvan kan men bepalen of het tijd wordt om een update over te halen en te installeren. Zeer regelmatig wordt voor elke gebruikers een nieuwe versie van PIAS aangemaakt en klaar gezet om te downloaden, die heeft (dus) een recente datum en een versienummer, waar het volgende bij aangemerkt moet worden:

  • Het versienummer is een nummer wat op elke broncodewijziging steeds met 1 verhoogd wordt. Hiervoor geldt dat niet elke broncodewijziging even structureel is, zo zijn er bv. aanpassingen aan de handleiding, verhelpen van spelfouten, toevoegen van nieuwe PIAS en LOCOPIAS klanten, experimentele en in ontwikkeling zijnde functionaliteit die uw specifieke PIAS versie niet raakt. Er kunnen zo bv. 50 revisienummers voorbij gaan zonder dat er in uw versie iets essentieels gewijzigd is.
  • Voor de aanmaakdatum geldt dat ongeveer in dezelfde mate: bijna elke dag (vaak ook in het weekend en op feestdagen) wordt er geautomatiseerd een actuele PIAS voor elke gebruiker aangemaakt, zelfs zonder dat er aan uw versie iets gewijzigd zou hoeven te zijn.

Wanneer het nuttig is om wel een update te installeren:

  • Sowieso op regelmatige basis. PIAS wordt immers constant verbeterd en uitgebreid, en zelfs een verzameling herstelde tikfoutjes of een nieuwe hulpfunctie is toch mooi meegenomen. Bijvoorbeeld eens per half jaar.
  • Na het gereed komen van significante uitbreidingen of aanpassingen. Die kunnen komen in horten en stoten, afhankelijk van uw pakketomvang soms een paar weken of maanden niks, en dan weer twee per week. Van zulke wijzigingen wordt u op de hoogte gehouden via de informatiebronnen zoals die besproken zijn in Handleidingen, oefeningen en informatiebronnen.

Digitizer functietoetsen

Voor een vlotte bediening van de digitizer is het handig als die van functietoetsen (o.i.d.) voorzien zou zijn, maar dat is slechts zelden het geval. Vandaar dat deze nagedaan kunnen worden door een functietoetsensticker op de digitizer te plakken, zoals die in onderstaande afbeelding is weergegeven, Door deze uit te printen en in de rechterbovenhoek van de digitizer te plakken, kunnen digitizercommando's worden gegeven. Let er bij het uitprinten op dat de breedte van de sticker 27.5 mm dient te zijn. Gebruik voor de juiste maat bij voorkeur de sticker zoals opgenomen de pdf handleiding i.p.v.  die uit HTML of helpreader. Alternatief kan de sticker in de linkeronderhoek geplakt worden maar daar is wel een extra instelling voor nodig, zie daarvoor Functions_digitizer_low in Externe variabelen.

digitizer_sticker22.png
Digitizersticker, printen vanuit pdf-handleiding

Computer klok

Om de rekensnelheid te vergroten rekent PIAS op veel plaatsen alleen dingen uit waarvan de gegevens inderdaad gewijzigd zijn sinds de laatste berekening. Bv. een tanktabel in Layout wordt alleen uitgerekend als die tank (of de rompvorm) ook echt aangepast is. Om dat te kunnen beoordelen worden de tijd van definitie en de tijd van berekening opgeslagen, en onderling vergeleken als er een nieuwe berekening gemaakt zou moeten worden. Daartoe is het wel van het grootste belang dat uw computerklok goed functioneert en de juiste tijd aanwijst, want anders kunnen gegevenswijzigingen onverwerkt blijven.

Tijdelijke bestanden

Zoals veel andere software maakt PIAS gebruik van tijdelijke bestanden. De gebruiker van de software merkt hier niets van tenzij er een probleem ontstaat bij het openen of schrijven hiervan. Dit is bijvoorbeeld het geval wanneer PIAS de tijdelijke files op een plaats probeert te schrijven waar de gebruiker geen schrijfrechten heeft. De directory waar deze bestanden worden geschreven wordt geregeld door het operating system. Windows hanteert daarvoor deze regels:

  • Het path gespecificeerd met behulp van de TMP environment variable.
  • Het path gespecificeerd met behulp van de TEMP environment variable, als de TMP variabele niet is gedefinieerd.
  • De windows directory, als TMP noch TEMP gedefinieerd zijn.

ASCII tekstfile

Wanneer er in de handleiding over een ASCII tekstfile wordt gesproken, wordt bedoeld een kale file zonder besturingscodes. Een tekstfile die met een ‘gewone’ tekstverwerker (zoals MS-Word) wordt aangemaakt bevat vaak besturingscodes ten behoeve van de opmaak, en voor het aanmaken van een kale tekstfile moet men bij zo'n tekstverwerker de optie gebruiken waarbij die achterwege gelaten worden. Een, wellicht beter, alternatief om ASCII-files te bewerken is met een simpele editor, zoals Notepad of het gratis Notepad++.

Unicode tekstfile

Een ASCII file kan min of meer alleen angelsaksische tekens bevatten. Om de karakters van andere talen ook te accommoderen is indernationaal de Unicode standaard afgesproken. Unicode wordt ook door PIAS ondersteund voor de statische uitvoer, dat is de uitvoer zoals opgenomen in het programma als zodanig. Een Unicode bestand kan met een specifieke Unicode tekstverwerker kan worden aangepast. Zulke zijn er te kust en te keur, bij SARC gebruiken we het gratis Babelpad. Het gebruik van Unicode in invoerdata van PIAS, zoals de namen van tanks of beladingstoestanden, is onderwerp van toekomstige ontwikkeling.

Export naar en import uit XML

XML is een internationale gegevensuitwisselingsstandaard. Niet primair van tekeningen of productinformatie, maar i.h.a.  van gestructureerde gegevensverzamelingen (data bases). XML is in zekere zin een lege huls, waar per toepassing invulling aan gegeven kan worden. Die invulling heeft betekenis voor de lezer en de schrijver van zo'n bestand, en die betekenis is vastgelegd in kenwoorden, die in XML markup genoemd worden. Deze kenwoorden zijn vrij te kiezen, en moeten natuurlijk wel ergens zijn vastgelegd, in een woordenlijst, bij voorkeur met de betekenis en de eenheden erbij. Het aardige van XML is dat i.h.a. vrij duidelijke kenwoorden gekozen kunnen worden, bv. longitudinal_centre_of_flotation_from_aft_perpendicular, waarvoor niet echt een woordenboek nodig is om te begrijpen wat hier bedoeld wordt.

Voor gegevensuitwisseling is XML de geprefereerde standaard binnen PIAS, zodat het geleidelijk op steeds meer plaatsen geïmplementeerd zal worden. Daarvoor bestaat al een flinke lijst van kenwoorden die typisch op het scheepsontwerp betrekking hebben. Deze zijn samengevat in het document “SARC XML dictionary on ship design data and commands”, wat op verzoek verkrijgbaar is bij SARC (inclusief een aantal voorbeeld-XML bestanden).

Men moet zich wel realiseren dat niet elke in- of uitvoerparameter van PIAS een XML pendant heeft. Het zou immers een enorme klus zijn om dat te implementeren, en wie gaat dat allemaal gebruiken? Daarom is PIAS op dit moment voorzien van XML ondersteuning die het meest gevraagd werd, zoals XML uitvoer uit Loading en Hydrotables, en tweerichtingsverkeer (in- en uitvoer) in Layout en Hulldef. Verder wordt XML ondersteuning on demand aan toegevoegd, d.w.z. dat op specifiek verzoek van een gebruiker specifieke XML functionaliteit in PIAS opgenomen kan worden, tegen vergoeding van de ontwikkelkosten, of soms een gedeelte daarvan.

Op dit moment is een PIAS basisregel bij het inlezen van een XML bestand dat deze de eventueel bestaande gegevens van dat schip of project geheel vervangen. Het inlezen van zo'n bestand is echt gericht op het eenmalig importeren van alle scheepsgegevens, en niet op incrementele of interactieve import. Bij dat laatste zou men zich trouwens best iets kunnen voorstellen, maar er zullen eerst context en scenarios moeten zijn voordat dat op algemeen bruikbare wijze ingevuld zou kunnen worden. Er is op het moment van schrijven (2018) overigens wel een project in ontwikkeling wat zich richt op interactieve samenwerking tussen verschillende computerprogramma's, m.n. tussen CADMATIC en PIAS. Dat systeem werkt ook op basis van XML, maar die wordt daarbij direct over het netwerk gecommuniceerd, zodat er geen sprake is van een XML bestand. Dat valt dan ook buiten de functionaliteit rondom XML bestanden zoals die voor de standaardversie van PIAS beschikbaar is.

Uitvoer in verschillende talen

De uitvoer van PIAS kan in verschillende talen gebeuren. Deze nederlandse en buitenlandse teksten staat in een los bestand, vaak met naam programmanaam.txt (bv. Hydrotables.txt bij het programma Hydrotables). Zo'n file is Unicode bestand, zie de beschrijving daarvan hier vlak boven. Elk zo'n taalbestand bevat vele tekstblokken, met in elk blok één regel PIAS uitvoer in meerdere talen. In het begin staat een teller die het aantal talen van die file aangeeft. Daarna volgt een blok met de taalcodering, bv. nl voor nederlands en en voor engels, volgens de ISO-639 standaard. Het staat elke PIAS gebruiker in principe vrij om middels deze bestanden talen toe te voegen, in samenwerking met SARC, volgens deze procedure:

  • Vooraf contact opnemen met SARC, omdat in de software zelf ook wat kleine aanvullingen moeten worden aangebracht om de nieuwe taal te ondersteunen.
  • Zich ervan vergewissen dat de meest recente taalbestanden van PIAS gebrukt worden.
  • Per vertaalbestand (wat i.h.a. met een PIAS module of functie correspondeert) alles vertalen, dus die regels die toevallig bij een bepaald project ongebruikt blijven niet overslaan.
  • S.v.p. vooraf meedelen aan SARC welke taalbestanden onder handen worden genomen. Dan kan SARC daar rekening mee houden, zodat er niet in de tussentijd nieuwe teksten in die bestanden gezet worden.
  • Per taalbestand niet teveel tijd nemen, en elk taalbestand wat gereed is direct naar SARC sturen.
  • Aanvaarden dat de bestanden met toegevoegde talen voor iedereen ter beschikking komen. Het is niet mogelijk om per individuele PIAS gebruiker taallijsten te onderhouden.
  • In de toekomst van tijd tot tijd eens kijken of er nieuwe woorden of zinnen in de taalbestanden zijn gekomen, daarvan een correcte vertaling toevoegen, en die aan SARC doen toekomen zodat het hele systeem up-to-date blijft. Nieuwe teksten zijn te herkennen aan een reeks vraagteken.
Attentie
Standaard ondersteunt PIAS uitvoer in het nederlands en het engels, dat wordt door SARC onderhouden. Voor veel modules zijn ook andere talen beschikbaar, zoals duits, chinees of russisch. Die talen worden niet actief door SARC ondersteund. Als u in de PIAS uitvoer een “????????” tegenkomt dan betekent dat dat die uitvoertekst voor de gekozen taal niet beschikbaar is. Als een consistente uitvoer in deze andere taal voor u van belang is dan kan het corresponderende taalbestand worden aangepast volgens bovenstaande procedure.

Externe variabelen

Via externe variabelen kunnen instellingen aan PIAS doorgegeven worden. Dit kan vaste programma-instellingen betreffen, maar ook exotische berekeningsopties waarvoor in de reguliere menu's geen plaats is. Men moet zich realiseren dat het gebruik van externe variabelen een bijzonderheid is, bedoeld voor hele specifieke opties of beperkt tot een klein aantal gebruikers. Een reguliere gebruiker hoeft hier niet per se gebruik van te maken. Een externe variabele bestaat uit een argument (= de variabelenaam) en een bijbehorende waarde. Er zijn vier alternatieve manieren om een externe variabele op te geven:

  • Als environment variable van het operating system, in de vorm van variabele=waarde, bijvoorbeeld PIASmailserver=xyz. Onder Windows kan een environment variable worden ingesteld met een set instelling in een CMD-window (ook bekend als “DOS-box”) of via het System Properties Panel. Voor meer details hierover wordt verwezen naar Windows documentatie.
  • In een ASCII tekstfile met de naam PIAS.CFG, die zich moet bevinden in de directory waar ook de PIAS programma's staan. Deze file bevat een aantal regels, waarbij op iedere regel één variabele en de bijbehorende waarde moeten staan (zonder “=” teken).
  • Als extra argument (command line parameter) bij het opstarten van Piasmenu. Bijvoorbeeld Piasmenu PIASmailserver=xyz.
  • Instellen in de registry van Windows, in entry HKEY_CURRENT_USER\Software\Sarc\General. Voor meer informatie over de registry wordt naar handboeken over Windows verwezen.

Lijst van externe variabelen

piasnaam=XXX
Voor het instellen van een vaste filenaam.
pias_page_height=XXX.
Om, bij de uitvoer naar preview/clipboard, aan te geven welke papierlengte (in tienden mm) aangehouden moet worden.
pias_preview_character_hb_ratio=XXX
Om, bij de uitvoer naar preview/clipboard, op te geven dat PIAS met een hoogte/breedte-verhouding van een karakter van XXX moet rekenen bij het opmaken van de pagina. Men kan opgeven pias_preview_character_hb_ratio=standaard, dan kiest PIAS de verhouding van 1.80.
Functions_digitizer_low=1
Geeft aan dat de sticker met functieletters linksonder op de digitizer geplakt is (i.p.v. rechtsboven, zoals standaard het geval is).
Australian_livestock=ja
Geeft aan dat in de berekening van de intacte stabiliteit i.p.v. het hellende graanmoment het moment van het overgaan van veevoer (volgens de Australische AMSA) gehanteerd wordt. Voor een complete berekening volgens de vee-eisen van AMSA moet deze instelling gepleegd worden; alleen het instellen van de AMSA stabiliteitscriteria is niet voldoende.
Frame_interpolate=1
Geeft bij de invoer van rompvormen (zie Spanten (spantposities en spantvormen)) de mogelijkheid om tussenspanten te interpoleren. Men kan zich hierbij de dezelfde vraag stellen als bij de vorige instelling, en het antwoord daarop is gelijkluidend: deze interpoleeroptie is zeer beperkt, in de eerste plaats is er de eis dat spanten aan weerszijden van de nieuw te interpoleren spanten een gelijk aantal punten hebben. En vervolgens worden alle corresponderende punten met elkaar verbonden en wordt daartussen lineair geïnterpoleerd. Simpeler kan niet, als het gewenst is om geavanceerder te interpoleren dan wordt daarvoor naar Fairway verwezen, dat is helemaal ontworpen voor dit soort operaties. En ook hier geeft u met het gebruik van deze instelling impliciet aan deze eenvoudige werking te accepteren.
PIASmailserver=xxx
Hiermee geeft men het adres van de e-mailserver op die PIAS kan gebruiken. Deze server moet wel zo zijn ingesteld dat het werkstation waar PIAS op draait het recht heeft om e-mailberichten via het SMTP-protocol te verzenden. Overigens kan men deze e-mailinstellingen, zoals hier beschreven, als externe variabele opgeven, dan heeft de instelling een min of meer permanent karakter. De instellingen kunnen echter ook per project opgegeven worden, zie daarvoor Berekeningswijzen en uitvoervoorkeuren.
PIASemailsender=xxx
Het e-mailadres van de afzender.
PIASemailrecipient=xxx
Het e-mailadres van de ontvanger.
PIAS_TIME_RECORD_FILE=XXX\YYY
In de directory XXX wordt een bestand YYY bijgehouden, waarin de tijd van het gebruik van PIAS programma's wordt bijgehouden. Elk PIAS programma schrijft per sessie de volgende info naar dit bestand. Verstreken seconden tussen opstarten en beeindigen van het programma [sec], start tijd [dd/mm/yy hh:mm], eind tijd [dd/mm/yy hh:mm], gebruikersnaam, programma naam, projectdirectory+bestandsnaam. Men kan ook nog een projectomschrijving opnemen met de externe variabele PIAS_PROJECT_NAME, die wordt dan ook in dit bestandje opgenomen. Handig t.b.v. geautomatiseerde urenregistratie!
SENTINEL_SERVER=IP adres van server
De computer in het netwerk waar de superpro netsentinel hardware lock te vinden is.
ANSIcharset=1
Per medio 2011 is PIAS gebruik gaan maken van de Unicode karakter-verzameling voor het weergeven van internationale tekens. Daarmee kunnen veel meer tekens worden weergegeven dan voorheen, en worden met name tekens uit andere talen op een gestandaardiseerde manier ondersteund. Helaas bleek dat een aantal PIAS-gebruikers voorheen ook al niet-standaard tekens gebruikte voor namen van bv. tanks of beladingstoestanden. Deze tekens werden (via Windows) opgeslagen in ANSI of OEM codering. En die is helaas niet compatible met Unicode. Om teveel ongemak te vermijden kan PIAS nu met genoemde externe variabele zo worden ingesteld dat nog steeds op de oude manier niet-standaard tekens kunnen worden ingetikt en weergegeven (hoewel een correcte werking ten principale niet kan worden gegarandeerd). Hier is echter wel een waarchuwing op z'n plaats: omdat die ANSI/OEM manier nu eenmaal botst met Unicode wordt geadviseerd deze niet meer te gebruiken. T.z.t. zal een nieuwe mogelijkheid worden geschapen om bijzondere tekens in PIAS in te voeren, maar dan volgens de Unicode standaard.
No_multithreading=1
Om het multithreading mechanisme van PIAS, want standaard aanstaat indien aangeschaft, uit te schakelen.

Snelheidsverhogende mechanismen in PIAS: PIAS/ES

Een kenmerk van ons vakgebied is dat zich vaak taken voordoen die uiterst rekenintensief zijn. Hoewel de computer op dit gebied al decennia goede diensten bewijst, blijft de rekentijd soms een knelpunt, mede omdat de mens zich heeft aangepast aan de toegenomen rekenkracht, en uitgebreidere berekeningen verlangt dan zonder de inzet van een computer het geval zou zijn geweest. Dit mechanisme manifesteert zich ook met PIAS, en het is dus van belang om te trachten het rekenproces te optimaliseren. Daartoe is PIAS voorzien van drie snelheidsverhogende pakketten, die de naam PIAS /ES dragen, waarbij ES staat voor Enhanced Speed.

PIAS/ES 1: dualthreading

Deze optie, die ongeveer in 2005 in PIAS geïmplementeerd is, maakt gebruik van de processortechnologie die rond die tijd algemeen beschikbaar is gekomen. Van oudsher bevat een PC i.h.a. één processor, en bevat deze processor één kern. Dat betekent dus dat de computer één taak tegelijk kan doen (hoewel het operating systeem u kan foppen, en de indruk kan wekken dat meerdere taken terzelfdertijd worden uitgevoerd). Er is echter een tendens waarbij een computer wordt uitgerust met meerdere echte of virtuele processoren (dat zijn dan resp. multi-processor en multi-core machines). Deze technologie stelt een programma dus in staat om taken parallel uit te voeren, maar de software zal daar wel speciaal voor aangepast moeten worden, waarbij taken die zich lenen voor gelijktijdige verwerking expliciet parallel aan de processor worden aangeboden. Dat impliceert dat van elke functie van een softwarepakket overwogen moet worden of deze zich leent voor parallele verwerking, en dat deze zonodig moet worden aangepast daarvoor. Ons beperkend tot PIAS zien we veel taken die in principe parallel kunnen worden uitgevoerd, zoals het berekenen van de (lek-)stabiliteit bij verschillende hoeken, of het tekenen van romplijnen in Fairway. Sommige zaken lenen zich daar echter niet voor, zoals het gelijktijdig berekenen van de eind- en tussenstadia van vervulling. Het eindstadium zal immers eerst bekend moet zijn alvorens berekend kan worden met welk waterniveau een bepaald tussenstadiumpercentage correspondeert. Deze overwegingen hebben ertoe geleid dat de volgende zaken dualthreaded geëmplementeerd zijn:

  • Bij alle intacte- en lekstabiliteitsberekeningen: het berekenen van ligging en stabiliteit bij meerdere hoeken gelijktijdige (behalve bij de eerste hoek).
  • Bij de probabilistische lekberekening: het bepalen van de kans van optreden d.m.v. numerieke integratie (door meerdere integratiepaden gelijkertijd uit te voeren).
  • Bij Layout het berekenen van diverse aansnijdingen tussen schotten en/of compartimentsgrenzen.

PIAS ES 2: octothreading

In de vorige paragraaf is beschreven waarom en hoe PIAS voor haar rekenintensieve taken gebruik is gaan maken van twee processoren (danwel rekenkernen of cores) tegelijkertijd. In de jaren daarna werden computers voorzien van steeds meer cores zodat het voor de hand ligt om daar meer dan twee van tegelijkertijd te gebruiken. Helaas was de oplossing van 2005 niet schaalbaar; Microsoft is tot de conclusie gekomen dat de oorspronkelijke Windows multithreading faciliteiten zelf een flinke overhead hadden (dat klopt, we hadden zelf ook al gemerkt dat daar kostbare processortijd aan verloren ging), en in plaats van die efficienter te maken hebben ze die — in goede oude Microsoft traditie — vervangen door iets heel anders, de zg. thread pools. Rond 2015 is PIAS daaraan aangepast, zodat meer dan twee rekenkernen nu parallel gebruikt kunnen worden, een nadere toelichting daarop is beschikbaar in dit white paper. In theorie zouden dat heel veel cores kunnen zijn, maar in de praktijk moeten allerhande keuzes en afwegingen worden gemaakt, die afhangen van de rekenklus en van de overheadtijd van het opstarten van een afgescheiden rekentaak (die ook bij het gebruik van pools helaas nog niet nul is). Daarom is gekozen voor een maximum aantal gelijktijdige threads van acht, vandaar de naam octothreading.

De uiteindelijk te behalen snelheidswinst van octothreading en AVX hangt van veel factoren af, zodat SARC geen kwantitatieve voorspelling kan geven. Voor een specifieke toepassing op een specifieke hardwareconfiguratie zal men dat zelf eens moeten meten, bv. met een tijdelijke licentie.

Octothreading wordt op een aantal kernplaatsen in PIAS gebruikt, en dat zal worden uitgebreid in de loop van de tijd. Multithreading kan overigens alleen worden toepast in algoritmes die intrinsiek geschikt zijn om geparallelliseerd te worden, en daar zijn er in PIAS heel wat van, maar sommige taken zijn nou eenmaal sequentieel van aard en kunnen dus niet multithreaded worden. Dat betekent dus dat de implementatie in PIAS geval voor geval bekeken moet worden, er is helaas geen toverstaf waarmee in één klap een programma als PIAS over alle processoren verdeeld wordt.

PIAS ES 3: vigintithreading

Zoals in de vorige paragraaf is beschreven is PIAS rond 2015 aangepast, zodat meer dan twee rekenkernen parallel gebruikt kunnen worden. Gezien de overheadtijd van het opstarten van een afgescheiden rekentaak is toendertijd gekozen voor een maximum van 8 gelijktijdige rekentaken. Inmiddels is multithreading op nog meer plaatsen binnen PIAS geimplementeerd bij langdurige en rekenintensieve taken zoals:

  • Bij de probabilistische lekberekeningen, het optimaliseren van de schadegrenzen.
  • Bij de probabilistische lekberekeningen, het genereren van schadegevallen.

De laatste jaren zijn multi-core computers gemeengoed geworden en er zijn inmiddels voor ‘de gewone gebruiker’ PC‘s beschikbaar welke over tien of meer cores beschikken, waarbij door hyperthreading twintig of meer threads tegelijkertijd kunnen lopen. Juist bij langdurige rekentaken, zoals de hierbovengenoemde, waarbij de overheadtijd nauwelijks een rol speelt, kan rekenen met meer dan 8 threads dan ook een aanzienlijke tijdswinst opleveren. Daarom is het maximum aantal parallel lopende processen binnen PIAS opgehoogd van acht (octothreading) naar twintig. Wij hebben dit vigintithreading genoemd.

PIAS ES 2 / PIAS ES 3: AVX

Bij het ontwikkelen van octothreading is alles uit de kast getrokken om de rekensnelheid van PIAS zo hoog mogelijk te laten zijn. Hedendaagse processoren hebben faciliteiten voor het gelijktijdig uitvoeren van meerdere floating point operations — die relatief lang duren, en waarbij het dus voordeel biedt om er een paar tegelijkertijd uit te voeren als het rekenalgoritme dat toelaat. Intel heeft die faciliteiten AVX2 gedoopt. Zowel de octothreading als de vigintithreading versie van PIAS maakt diep in haar kern zoveel mogelijk gebruik van AVX2.

Limiteren van het aantal te gebruiken processoren

Tenslotte is er nog een voorziening voor als men juist niet wil dat alle processoren door PIAS in gebruik worden genomen, bv. als men gelijktijdig ook nog andere processorintensieve dingen wil doen. Zie daarvoor instelling ‘Maximum aantal PIAS processoren’ in Programma Setup.

Multithreading taakmonitor

Om het gebruik van meerdere threads, juist bij de langdurige berekeningen in combinatie met vigintithreading, voor de gebruiker inzichtelijk te maken, is PIAS nu ook uitgebreid met een thread monitoring interface. Deze interface is zichtbaar tijdens de berekeningen en geeft voor alle beschikbare threads, per thread relevante informatie over de status, zoals een omschrijving van de huidige taak van de thread, de starttijd en verstreken tijd. Deze thread monitoring interface is weliswaar ontwikkeld ten behoeve van, en in combinatie met, vigintithreading, maar is op de plaatsen waar geimplementeerd nu algemeen beschikbaar, dus ook bij single-, dual- en octothreading.

Als een thread klaar is met een rekentaak, dan krijgt deze een nieuwe rekentaak toebedeeld door de applicatie. Net zolang totdat er geen rekentaken meer zijn. De afbeelding laat een voorbeeld zien van een berekening in zijn laatste minuten, waarbij enkele threads al klaar zijn. Er zijn dus geen rekentaken meer beschikbaar, de berekening loopt ten einde.

mthreadtaakmonitor.png
Multithreading taakmonitor