Anleitung: app_config.xml

Probleme mit einem Clientprogramm? Oder einen Tipp dazu? Dann hier posten...
Nachricht
Autor
Eric
Block-Bunkerer
Block-Bunkerer
Beiträge: 1355
Registriert: 07.05.2013 09:24

Anleitung: app_config.xml

#1 Ungelesener Beitrag von Eric » 16.01.2014 20:58

Hin und wieder kommen Fragen auf, wie man denn für eine Applikation eines Projektes die Anzahl der parallel ausgeführten WUs für die CPU oder für die GPU festlegen kann und im Falle der GPU WUs auch Einfluß auf die CPU-Nutzung nehmen kann.

Erledigen lässt sich das Ganze recht gut mit einer xml-Datei Namens app_config.xml.

Alles was man dazu braucht ist ein Texteditor und schon kann es losgehen. Doch wohin speichert man die Datei app_config.xml?
Der richtige Ort ist im Data\projects\<Name_des_jeweiligen_Projektes> Verzeichnis der BOINC Installation.
Die Datei selber kann für alle Applikationen eines Projektes Einträge enthalten oder auch nur für eine Applikation/ausgewählte Applikationen des Projektes.

Doch wie ist die Datei aufgebaut?

Fangen wir mit einem einfachen Beispiel an. Für LHC@Home möchte ich, dass für die Applikation SixTrack maximal 5 WUs parallel ausgeführt werden sollen, damit noch Kapazität für andere Projekte übrig bleibt.

Also Editor geschnappt und im Verzeichnis \Data\projects\lhcathomeclassic.cern.ch_sixtrack die Datei app_config.xml angelegt.

Das Grundgerüst sieht folgendermaßen aus:

Code: Alles auswählen

app_config>
<app>
<name></name>
</app>
</app_config>
Wo bekomme ich jetzt den Namen für die Applikation her? Im Verzeichnis \Data der Boinc-Installation gibt es eine Datei client_state.xml.
Diese öffnen und darin z.B. nach dem Projekt wie es in Boinc angezeigt wird suchen. Wenn man von der Fundstelle ein wenig nach unten scrollt, kommt man zu einem Abschnitt der wieder mit

Code: Alles auswählen

<app>
beginnt. In unserem Beispiel:

Code: Alles auswählen

<app>
    <name>sixtrack</name>
    <user_friendly_name>SixTrack</user_friendly_name>
    <non_cpu_intensive>0</non_cpu_intensive>
</app>
Davon interessiert uns das was zwischen

Code: Alles auswählen

<name></name
steht: sixtrack!

Den Namen können wir jetzt in unsere app_info.xml übernehmen (Tipp: Der user_friendly_name ist sprechender um sich zu vergewissern, dass man den richtigen Namen gefunden hat):

Code: Alles auswählen

app_config>
<app>
<name>sixtrack</name>
</app>
</app_config>
O.k. soweit. Aber so wirklich was bewirken kann unsere Datei bisher nicht. Das spannende bei der CPU-Applikation ist ja, wie wir diese jetzt auf eine Anzahl von parallelen WU beschränken können.
Dies geschieht durch

Code: Alles auswählen

<max_concurrent></max_concurrent>
Das fügen wir mit einem uns genehmen Wert ein:

Code: Alles auswählen

<app_config>
<app>
<name>sixtrack</name>
<max_concurrent>5</max_concurrent>
</app>
</app_config>
Wenn wir jetzt eine weitere Applikation für LHC hinzufügen wollten, würde das so aussehen:

Code: Alles auswählen

<app_config>
<app>
<name>sixtrack</name>
<max_concurrent>5</max_concurrent>
</app>
<app>
<name>Weitere_LHC_Applikation</name>
<max_concurrent>4</max_concurrent>
</app>
</app_config>
usw.

Nachdem wir die Datei gespeichert haben, soll sie natürlich auch von BOINC verwendet werden. Das passiert entweder beim Start von BOINC automatisch oder aber in dem wir im BOINC-Manager im Menü "Extras" die Option "Konfigurationsdatei einlesen" auswählen.
Anmerkung/Warnung: Bei mir ist noch keine WU abgebrochen worden, wenn ich die Datei neu eingelesen habe während BOINC schon lief. Ich kann es aber auch nicht ausschliessen.

Kommen wir nun zu Applikationen die von der GPU Gebrauch machen. Als Beispiel wähle ich hier Albert@home aus.

Code: Alles auswählen

<app_config>
<app>
<name>einsteinbinary_BRP5</name>
<gpu_versions>
<gpu_usage>0.2</gpu_usage>
<cpu_usage>0.2</cpu_usage>
</gpu_versions>
</app>
<app>
<name>hsgamma_FGRP2</name>
<gpu_versions>
<gpu_usage>0.1</gpu_usage>
<cpu_usage>0.1</cpu_usage>
</gpu_versions>
</app>
</app_config>
Die Namen habe ich wieder aus der client_state.xml herausgesucht. Da ich hier für die GPU Einstellungen vornehmen möchte kommt in der Datei jetzt ein Abschnitt

Code: Alles auswählen

<gpu_versions></gpu_versions>
zum Tragen.
Mit

Code: Alles auswählen

<gpu_usage></gpu_usage>
kann ich festlegen wieviele WU parallel gerechnet werden sollen. Das kennt ihr eventuell aus den Projekteinstellungen in der Kontenübersicht des Projektes.
Eine 1 bedeutet eine WU (also keine parellelen WUs). 0.5 wären 2 WU parallel, 0.25 entsprechen 4 WU parallel usw.
Ich rechne momentan bei Albert die BRP5 (Binary Radio Pulsar Search (Perseus Arm Survey)) mit 5 parallelen WU, weshalb ich für die gpu_usage 0.2 eingetragen habe.
Mit dem Parameter

Code: Alles auswählen

<cpu_usage></cpu_usage>
kann ich steuern, wieviel CPU jede einzelne GPU WU benutzen darf.
Auch hier gilt wieder: Eine 1 bedeutet 1 CPU/WU, 0.5 wäre 0,5 CPU/WU usw.

Hier gibt es ein weites Feld zum Experimentieren um das letzte Quentchen herauszupressen.

Aufforderung: Mein Geschreibsel braucht so nicht zu bleiben. Ändert es. Ergänzt es. Erläutert weitere Parameter (die es sicherlich gibt).
Fragen beantworte ich natürlich gerne, sofern ich es denn selber weiß.
Bild

Benutzeravatar
Dunuin
Vereinsmitglied
Vereinsmitglied
Beiträge: 1743
Registriert: 23.03.2011 12:59
Wohnort: Hamburg

Re: Anleitung: app_config.xml

#2 Ungelesener Beitrag von Dunuin » 16.01.2014 22:43

Eric hat geschrieben:Hin und wieder kommen Fragen auf, wie man denn für eine Applikation eines Projektes die Anzahl der parallel ausgeführten WUs für die CPU oder für die GPU festlegen kann und im Falle der GPU WUs auch Einfluß auf die CPU-Nutzung nehmen kann.

Erledigen lässt sich das Ganze recht gut mit einer xml-Datei Namens app_config.xml.

Alles was man dazu braucht ist ein Texteditor und schon kann es losgehen. Doch wohin speichert man die Datei app_config.xml?
Der richtige Ort ist im Data\projects\<Name_des_jeweiligen_Projektes> Verzeichnis der BOINC Installation.
Die Datei selber kann für alle Applikationen eines Projektes Einträge enthalten oder auch nur für eine Applikation/ausgewählte Applikationen des Projektes.

Doch wie ist die Datei aufgebaut?

Fangen wir mit einem einfachen Beispiel an. Für LHC@Home möchte ich, dass für die Applikation SixTrack maximal 5 WUs parallel ausgeführt werden sollen, damit noch Kapazität für andere Projekte übrig bleibt.

Also Editor geschnappt und im Verzeichnis \Data\projects\lhcathomeclassic.cern.ch_sixtrack die Datei app_config.xml angelegt.

Das Grundgerüst sieht folgendermaßen aus:

Code: Alles auswählen

<app_config>
    <app>
       <name></name>
    </app>
</app_config>
Wo bekomme ich jetzt den Namen für die Applikation her? Im Verzeichnis \Data der Boinc-Installation gibt es eine Datei client_state.xml.
Diese öffnen und darin z.B. nach dem Projekt wie es in Boinc angezeigt wird suchen. Wenn man von der Fundstelle ein wenig nach unten scrollt, kommt man zu einem Abschnitt der wieder mit

Code: Alles auswählen

<app>
beginnt. In unserem Beispiel:

Code: Alles auswählen

<app>
    <name>sixtrack</name>
    <user_friendly_name>SixTrack</user_friendly_name>
    <non_cpu_intensive>0</non_cpu_intensive>
</app>
Davon interessiert uns das was zwischen

Code: Alles auswählen

<name></name>
steht: "sixtrack"!

Den Namen können wir jetzt in unsere app_info.xml übernehmen (Tipp: Der user_friendly_name ist sprechender um sich zu vergewissern, dass man den richtigen Namen gefunden hat):

Code: Alles auswählen

<app_config>
    <app>
        <name>sixtrack</name>
    </app>
</app_config>
O.k. soweit. Aber so wirklich was bewirken kann unsere Datei bisher nicht. Das spannende bei der CPU-Applikation ist ja, wie wir diese jetzt auf eine Anzahl von parallelen WU beschränken können.
Dies geschieht durch

Code: Alles auswählen

<max_concurrent></max_concurrent>
Das fügen wir mit einem uns genehmen Wert ein:

Code: Alles auswählen

<app_config>
    <app>
        <name>sixtrack</name>
        <max_concurrent>5</max_concurrent>
    </app>
</app_config>
Wenn wir jetzt eine weitere Applikation für LHC hinzufügen wollten, würde das so aussehen:

Code: Alles auswählen

<app_config>
    <app>
        <name>sixtrack</name>
        <max_concurrent>5</max_concurrent>
    </app>
    <app>
        <name>Weitere_LHC_Applikation</name>
        <max_concurrent>4</max_concurrent>
    </app>
</app_config>
usw.

Nachdem wir die Datei gespeichert haben, soll sie natürlich auch von BOINC verwendet werden. Das passiert entweder beim Start von BOINC automatisch oder aber in dem wir im BOINC-Manager im Menü "Extras" die Option "Konfigurationsdatei einlesen" auswählen.
Anmerkung/Warnung: Bei mir ist noch keine WU abgebrochen worden, wenn ich die Datei neu eingelesen habe während BOINC schon lief. Ich kann es aber auch nicht ausschliessen.

Kommen wir nun zu Applikationen die von der GPU Gebrauch machen. Als Beispiel wähle ich hier Albert@home aus.

Code: Alles auswählen

<app_config>
    <app>
        <name>einsteinbinary_BRP5</name>
        <gpu_versions>
            <gpu_usage>0.2</gpu_usage>
            <cpu_usage>0.2</cpu_usage>
        </gpu_versions>
    </app>
    <app>
        <name>hsgamma_FGRP2</name>
        <gpu_versions>
            <gpu_usage>0.1</gpu_usage>
            <cpu_usage>0.1</cpu_usage>
        </gpu_versions>
    </app>
</app_config>
Die Namen habe ich wieder aus der client_state.xml herausgesucht. Da ich hier für die GPU Einstellungen vornehmen möchte kommt in der Datei jetzt ein Abschnitt

Code: Alles auswählen

<gpu_versions></gpu_versions>
zum Tragen.
Mit

Code: Alles auswählen

<gpu_usage></gpu_usage>
kann ich festlegen wieviele WU parallel gerechnet werden sollen. Das kennt ihr eventuell aus den Projekteinstellungen in der Kontenübersicht des Projektes.
Eine 1 bedeutet eine WU (also keine parellelen WUs). 0.5 wären 2 WU parallel, 0.25 entsprechen 4 WU parallel usw.
Ich rechne momentan bei Albert die BRP5 (Binary Radio Pulsar Search (Perseus Arm Survey)) mit 5 parallelen WU, weshalb ich für die gpu_usage 0.2 eingetragen habe.
Mit dem Parameter

Code: Alles auswählen

<cpu_usage></cpu_usage>
kann ich steuern, wieviel CPU jede einzelne GPU WU benutzen darf.
Auch hier gilt wieder: Eine 1 bedeutet 1 CPU/WU, 0.5 wäre 0,5 CPU/WU usw.

Hier gibt es ein weites Feld zum Experimentieren um das letzte Quentchen herauszupressen.

Aufforderung: Mein Geschreibsel braucht so nicht zu bleiben. Ändert es. Ergänzt es. Erläutert weitere Parameter (die es sicherlich gibt).
Fragen beantworte ich natürlich gerne, sofern ich es denn selber weiß.
Mal etwas angepasst. Wenns fertig ist sollte das jemand vom Wiki-Team übertragen.
Bild

Benutzeravatar
Norman
Vereinsmitglied
Vereinsmitglied
Beiträge: 2188
Registriert: 20.03.2003 14:34
Wohnort: Saarland
Kontaktdaten:

Re: Anleitung: app_config.xml

#3 Ungelesener Beitrag von Norman » 17.01.2014 04:57

achja, und danke für den beitrag ;)

Eric
Block-Bunkerer
Block-Bunkerer
Beiträge: 1355
Registriert: 07.05.2013 09:24

Re: Anleitung: app_config.xml

#4 Ungelesener Beitrag von Eric » 17.01.2014 10:07

@Dunuin: Danke
@Norman: Nichts zu danken. Ein Forum lebt durch die Beteiligung jedes Einzelnen.
Bild

Eric
Block-Bunkerer
Block-Bunkerer
Beiträge: 1355
Registriert: 07.05.2013 09:24

Re: Anleitung: app_config.xml

#5 Ungelesener Beitrag von Eric » 17.01.2014 10:08

Falschen Knopf gedrückt.

Ich schaue mal, dass ich das Ganze noch besser strukturiere und anreichere mit Informationen.
Das war gestern so eine Nacht- und Nebelaktion.
Bild

Tim
Vereinsmitglied
Vereinsmitglied
Beiträge: 902
Registriert: 05.04.2013 16:22
Wohnort: Hamburg

Re: Anleitung: app_config.xml

#6 Ungelesener Beitrag von Tim » 28.02.2014 04:10

Kann mir jemand möglicherweise sagen, wie ich es hinbekomme, dass die noch frei Leistungskapazität der CPU - ca. 40-50% - zur Zeit noch ausgenutzt werden kann für die Berechnung von weiteren WUs. 6 Threads reserviert sich bei mir Albert@Home und berechnet dann 8 WUs parallel und 2 Threads werden durch CPU-Projekte genutzt, dadurch ist die CPU aber nicht ausgelastet. Gibts da eine Möglichkeit oder macht es möglicherweise gar keinen Sinn diese Kapazität noch anzuzapfen?

Antworten

Zurück zu „Hilfe und Support“