PIAS Handleiding
2024
Programma voor de Integrale Aanpak van het Scheepsontwerp
|
In Codemeter is een introductie gegeven van de Codemeter software beveiligingsvoorziening. Dit hoofdstuk bespreekt de installatie en update procedure daarvan.
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:
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:
Met de huidige opzet van licenties kunnen gebruikers vrij kiezen welke modules ze nodig hebben en welke niet. Echter, als er meerdere licenties beschikbaar zijn, maar van sommige modules slechts 1 licentie beschikbaar is, kan het voorkomen dat deze in gebruik is. SARC heeft haar best gedaan om dit zoveel mogelijk te voorkomen, maar soms kan het niet anders.
Wanneer dit aan de orde is, kan de licentietoegang beheerd worden met behulp van de Codemeter WebAdmin. Toegang tot een specifieke licentie kan per gebruiker, Domeingroep, etc. worden geregeld door toegang toe te staan of te weigeren. Hieronder wordt uitgelegd hoe dit in zijn werk gaat. De volledige handleiding is online te vinden op Manuals & Guides page, onder Manuals for Users , in CodeMeter Administrator Manual .
Ga als volgt te werk om specifieke toegangsregels aan te maken om de licentietoegang tot afzonderlijke Productcodes te regelen:
Voor het aanmaken van een Product Code-specifieke toegangsregels is een eerder aangemaakte Firm Code-specifieke toegangsregels nodig.
Het dialoogvenster voor het selecteren van een productcode wordt weergegeven.
Zet een vink bij “Distinction based on Product Item Text” (Onderscheid op basis van productartikel tekst).
Een nieuwe specifieke toegangsregel die geldig is voor deze productcode wordt weergegeven in de rechter regelweergave. Tegelijkertijd wordt informatie weergegeven over de License Quantity (licentiehoeveelheid), d.w.z. het aantal gelijktijdige licenties op een netwerk. Dit aantal mag niet worden overschreden als later limieten worden gedefinieerd voor het aantal toegangen.
Er verschijnt een dialoogvenster voor het definiëren van een nieuwe regel.
Een klik op de knop “Annuleren” annuleert het proces. De nieuwe regel wordt weergegeven in de rechter regelweergave.
Als je meerdere regels hebt gedefinieerd, kun je de regelvolgorde wijzigen met behulp van de pijlsymbolen ↑ ↓. Regels worden top-down verwerkt, wat betekent dat de volgorde van de regels bepalend is voor het resultaat. Met de link “Edit” (Bewerken) of “Delete” (Verwijderen) kun je een regel wijzigen of volledig verwijderen. Om een volledige productcode-specifieke toegangsregel te verwijderen, gebruikt u de knop “Delete rule list” (Regellijst verwijderen).
De afbeelding hieronder toont een voorbeeld van een specifieke toegangsregel met exclusieve toegangsrechten (Gereserveerd: 1; Limiet: 1) tot de Productcode 201000 van Firm Code 10 voor een gastgebruiker, de volledige supportafdeling en een supervisor. 2 licentietoegangspunten van een totaal van 5 licentietoegangspunten (licentiehoeveelheid) blijven beschikbaar en de standaard licentietoegang is gedefinieerd als toegestaan.
Updates van PIAS kunt u op twee manieren verkrijgen:
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.
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:
Wanneer het nuttig is om wel een update te installeren:
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.
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.
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:
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++.
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.
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.
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:
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:
Piasmenu PIASmailserver=xyz
.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.
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:
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.
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:
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.
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.
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.
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.