Scheduler: plan for integration
identified three distinct tasks - build the external API - establish component integration - performance testing
This commit is contained in:
parent
9ce3ad3d72
commit
9db341bd8b
5 changed files with 650 additions and 9 deletions
|
|
@ -234,7 +234,7 @@ namespace gear {
|
|||
/* use the minimal default wiring */
|
||||
break;
|
||||
default:
|
||||
NOTREACHED ("uncovered Activity verb in activation function.");
|
||||
NOTREACHED ("unknown wiring scheme for Render Jobs.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
103
tests/vault/gear/scheduler-service-test.cpp
Normal file
103
tests/vault/gear/scheduler-service-test.cpp
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
/*
|
||||
SchedulerService(Test) - component integration test for the scheduler
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2023, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
* *****************************************************/
|
||||
|
||||
/** @file scheduler-usage-test.cpp
|
||||
** unit test \ref SchedulerService_test
|
||||
*/
|
||||
|
||||
|
||||
#include "lib/test/run.hpp"
|
||||
#include "vault/gear/scheduler.hpp"
|
||||
//#include "lib/time/timevalue.hpp"
|
||||
//#include "lib/format-cout.hpp"
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
//#include <utility>
|
||||
|
||||
using test::Test;
|
||||
//using std::move;
|
||||
//using util::isSameObject;
|
||||
|
||||
|
||||
namespace vault{
|
||||
namespace gear {
|
||||
namespace test {
|
||||
|
||||
// using lib::time::FrameRate;
|
||||
// using lib::time::Offset;
|
||||
// using lib::time::Time;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*************************************************************************//**
|
||||
* @test Scheduler component integration test: add and process dependent jobs.
|
||||
* @see SchedulerActivity_test
|
||||
* @see SchedulerInvocation_test
|
||||
* @see SchedulerCommutator_test
|
||||
*/
|
||||
class SchedulerService_test : public Test
|
||||
{
|
||||
|
||||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
simpleUsage();
|
||||
walkingDeadline();
|
||||
setupLalup();
|
||||
}
|
||||
|
||||
|
||||
/** @test TODO demonstrate a simple usage scenario
|
||||
*/
|
||||
void
|
||||
simpleUsage()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO
|
||||
*/
|
||||
void
|
||||
walkingDeadline()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO
|
||||
*/
|
||||
void
|
||||
setupLalup()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/** Register this test class... */
|
||||
LAUNCHER (SchedulerService_test, "unit engine");
|
||||
|
||||
|
||||
|
||||
}}} // namespace vault::gear::test
|
||||
103
tests/vault/gear/scheduler-stress-test.cpp
Normal file
103
tests/vault/gear/scheduler-stress-test.cpp
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
/*
|
||||
SchedulerStress(Test) - verify scheduler performance characteristics
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2023, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
* *****************************************************/
|
||||
|
||||
/** @file scheduler-usage-test.cpp
|
||||
** unit test \ref SchedulerStress_test
|
||||
*/
|
||||
|
||||
|
||||
#include "lib/test/run.hpp"
|
||||
#include "vault/gear/scheduler.hpp"
|
||||
//#include "lib/time/timevalue.hpp"
|
||||
//#include "lib/format-cout.hpp"
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
//#include <utility>
|
||||
|
||||
using test::Test;
|
||||
//using std::move;
|
||||
//using util::isSameObject;
|
||||
|
||||
|
||||
namespace vault{
|
||||
namespace gear {
|
||||
namespace test {
|
||||
|
||||
// using lib::time::FrameRate;
|
||||
// using lib::time::Offset;
|
||||
// using lib::time::Time;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************//**
|
||||
* @test Investigate and verify non-functional characteristics of the Scheduler.
|
||||
* @see SchedulerActivity_test
|
||||
* @see SchedulerInvocation_test
|
||||
* @see SchedulerCommutator_test
|
||||
*/
|
||||
class SchedulerStress_test : public Test
|
||||
{
|
||||
|
||||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
simpleUsage();
|
||||
walkingDeadline();
|
||||
setupLalup();
|
||||
}
|
||||
|
||||
|
||||
/** @test TODO demonstrate a simple usage scenario
|
||||
*/
|
||||
void
|
||||
simpleUsage()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO
|
||||
*/
|
||||
void
|
||||
walkingDeadline()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO
|
||||
*/
|
||||
void
|
||||
setupLalup()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/** Register this test class... */
|
||||
LAUNCHER (SchedulerStress_test, "unit engine");
|
||||
|
||||
|
||||
|
||||
}}} // namespace vault::gear::test
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
SchedulerUsage(Test) - component integration test for the scheduler
|
||||
SchedulerUsage(Test) - verify standard usage patterns of the scheduler service
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2023, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
|
@ -51,7 +51,7 @@ namespace test {
|
|||
|
||||
|
||||
/*************************************************************************//**
|
||||
* @test Scheduler component integration test: add and process dependent jobs.
|
||||
* @test Ensure expected Scheduler functionality in standard usage situations.
|
||||
* @see SchedulerActivity_test
|
||||
* @see SchedulerInvocation_test
|
||||
* @see SchedulerCommutator_test
|
||||
|
|
|
|||
|
|
@ -78564,6 +78564,14 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1697754985639" ID="ID_799408544" MODIFIED="1697755265544" TEXT="Verschaltung: Prerequisite ↷ Dependent-Job">
|
||||
<linktarget COLOR="#3e9bb9" DESTINATION="ID_799408544" ENDARROW="Default" ENDINCLINATION="1223;78;" ID="Arrow_ID_184937137" SOURCE="ID_107749731" STARTARROW="None" STARTINCLINATION="370;22;"/>
|
||||
<linktarget COLOR="#7a96a6" DESTINATION="ID_799408544" ENDARROW="Default" ENDINCLINATION="651;46;" ID="Arrow_ID_1767879061" SOURCE="ID_1696760158" STARTARROW="None" STARTINCLINATION="267;-849;"/>
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1697755215608" HGAP="42" ID="ID_70962304" MODIFIED="1697755242505" TEXT="wird in der Activity-Language im Scheduler genau so benötigt" VSHIFT="-4">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1681167579899" ID="ID_428564529" MODIFIED="1681167585941" TEXT="createJobFor(FrameCoord)"/>
|
||||
|
|
@ -80068,7 +80076,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1693495715425" HGAP="40" ID="ID_1961334483" MODIFIED="1693495750410" TEXT="in der Planning-Pipeline ist der abhängige Folge-Job als »Parent« zugänglich" VSHIFT="-7">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1693495768326" HGAP="85" ID="ID_1696760158" MODIFIED="1693587703548" TEXT="daher ⟹ vom Ende zum Nachfolger schalten" VSHIFT="-1">
|
||||
<node COLOR="#435e98" CREATED="1693495768326" HGAP="85" ID="ID_1696760158" MODIFIED="1695587703548" TEXT="daher ⟹ vom Ende zum Nachfolger schalten" VSHIFT="-1">
|
||||
<arrowlink COLOR="#7a96a6" DESTINATION="ID_799408544" ENDARROW="Default" ENDINCLINATION="651;46;" ID="Arrow_ID_1767879061" STARTARROW="None" STARTINCLINATION="267;-849;"/>
|
||||
<node COLOR="#338800" CREATED="1693495830346" ID="ID_1261227945" MODIFIED="1693587694778" TEXT="appendNotificationTo(targetTerm)">
|
||||
<arrowlink COLOR="#786889" DESTINATION="ID_701999603" ENDARROW="Default" ENDINCLINATION="-1087;-893;" ID="Arrow_ID_893699409" STARTARROW="None" STARTINCLINATION="-687;55;"/>
|
||||
<arrowlink COLOR="#4b8acc" DESTINATION="ID_1367094984" ENDARROW="Default" ENDINCLINATION="72;7;" ID="Arrow_ID_164230628" STARTARROW="None" STARTINCLINATION="119;9;"/>
|
||||
|
|
@ -81607,6 +81616,71 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697736405977" HGAP="-3" ID="ID_1390282587" MODIFIED="1697736482656" TEXT="Scheduler-API" VSHIFT="43">
|
||||
<font NAME="SansSerif" SIZE="15"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1697736413463" ID="ID_996573918" MODIFIED="1697736451469" TEXT="ein sinnvolles externes API entwickeln">
|
||||
<linktarget COLOR="#ff1924" DESTINATION="ID_996573918" ENDARROW="Default" ENDINCLINATION="-817;60;" ID="Arrow_ID_226641198" SOURCE="ID_1891808134" STARTARROW="None" STARTINCLINATION="-848;-40;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1697736509591" ID="ID_1412564814" MODIFIED="1697736530363" TEXT="Maßgabe">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1697745097705" ID="ID_1262541957" MODIFIED="1697745115210" TEXT="Scheduler wird als Service per DI zugreifbar sein"/>
|
||||
<node CREATED="1697745116038" ID="ID_552854146" MODIFIED="1697745125617" TEXT="Kopplung auf die Activity-Language vermeiden"/>
|
||||
<node CREATED="1697745162168" ID="ID_1987710185" MODIFIED="1697745167195" TEXT="Orientierung am Use-Case"/>
|
||||
<node CREATED="1697745171552" ID="ID_1226499224" MODIFIED="1697745177738" TEXT="Konzept »Render-Job«"/>
|
||||
</node>
|
||||
<node CREATED="1697745184133" ID="ID_1741520544" MODIFIED="1697745192149" TEXT="Use-Case-Analyse">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1697745329298" ID="ID_1167489748" MODIFIED="1697745333980" TEXT="operational control">
|
||||
<node CREATED="1697745335153" ID="ID_217274836" MODIFIED="1697745434359" TEXT="Verarbeitung terminieren"/>
|
||||
<node CREATED="1697745465344" ID="ID_1966078419" MODIFIED="1697745480697" TEXT="ggfs Last reduzieren (bremsen)"/>
|
||||
<node CREATED="1697745497071" ID="ID_1927106783" MODIFIED="1697745500767" TEXT="Laststatus auslesen"/>
|
||||
</node>
|
||||
<node CREATED="1697745521832" ID="ID_1827596870" MODIFIED="1697745542346" TEXT="neuen Calc-Stream starten">
|
||||
<node CREATED="1697745548029" ID="ID_907270420" MODIFIED="1697745553152" TEXT="übergabe eines Seed-Job"/>
|
||||
<node CREATED="1697745554596" ID="ID_597142693" MODIFIED="1697745567342" TEXT="erzeugt intern auch ein Lastsignal"/>
|
||||
</node>
|
||||
<node CREATED="1697745688831" ID="ID_1065082154" MODIFIED="1697745695949" TEXT="Job-Standard-Schemata">
|
||||
<node CREATED="1697745717790" ID="ID_1305876993" MODIFIED="1697745735895" TEXT="reinen Calc-Job"/>
|
||||
<node CREATED="1697745736508" ID="ID_28608920" MODIFIED="1697745774953" TEXT="Job mit IO-Anteil"/>
|
||||
<node CREATED="1697745776478" ID="ID_404896750" MODIFIED="1697745784017" TEXT="Dependency-Verknüpfung">
|
||||
<node CREATED="1697754789889" ID="ID_93641454" MODIFIED="1697754807466" TEXT="die Voraussetzung wird auf die Folge aufgeschaltet"/>
|
||||
<node CREATED="1697754808534" ID="ID_112643467" MODIFIED="1697754838318" TEXT="⟹ beide Terme müssen zugleich im Speicher liegen"/>
|
||||
<node CREATED="1697754877693" ID="ID_107749731" MODIFIED="1697755265544" TEXT="ist in der Job-Planning-Pipeline gewährleistet">
|
||||
<arrowlink COLOR="#3e9bb9" DESTINATION="ID_799408544" ENDARROW="Default" ENDINCLINATION="1223;78;" ID="Arrow_ID_184937137" STARTARROW="None" STARTINCLINATION="370;22;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
<node COLOR="#7350b1" CREATED="1697755288338" HGAP="29" ID="ID_612802023" MODIFIED="1697755490162" VSHIFT="11">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
weil sie sinnigerweise <i>auf dem Kopf steht</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
....das hat sich allerdings schon aus der Analyse des Pull-Processing im Node-Network so ergeben, denn dort geht man von der ExitNode rückwärts; damals konnte ich nicht vorhersehen, wie die Situation im Scheduler sich darstellen wird — möglicherweise verbirg sich eine tiefere, strukturelle Konvergenz dahinter, daß das jetzt so <i>schön aufgeht</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<font NAME="SansSerif" SIZE="11"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1697745850749" ID="ID_48640613" MODIFIED="1697745867438" TEXT="Worker-Function"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1680565469342" ID="ID_250843894" MODIFIED="1697664168767" TEXT="Priority-Scheduling">
|
||||
<linktarget COLOR="#fec499" DESTINATION="ID_250843894" ENDARROW="Default" ENDINCLINATION="-644;84;" ID="Arrow_ID_1702721830" SOURCE="ID_12567096" STARTARROW="None" STARTINCLINATION="-233;30;"/>
|
||||
|
|
@ -86572,13 +86646,17 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688336835085" ID="ID_1753236898" MODIFIED="1688337246573" TEXT="SchedulerUsage_test">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688336835085" ID="ID_1753236898" MODIFIED="1697732777759" TEXT="SchedulerService_test">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1688337200875" ID="ID_1269476607" MODIFIED="1688337233917" TEXT="Scheduler Component End-to-End ">
|
||||
<node CREATED="1688337200875" ID="ID_1269476607" MODIFIED="1697732840741" TEXT="Scheduler Component Integration End-to-End">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697473158929" ID="ID_505069585" MODIFIED="1697493162215" TEXT="Aufgaben">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1697736343993" ID="ID_1891808134" MODIFIED="1697736494112" TEXT="das Scheduler-API abdecken">
|
||||
<arrowlink COLOR="#ff1924" DESTINATION="ID_996573918" ENDARROW="Default" ENDINCLINATION="-817;60;" ID="Arrow_ID_226641198" STARTARROW="None" STARTINCLINATION="-848;-40;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697484506891" ID="ID_1292738036" MODIFIED="1697484528227" TEXT="den kompletten Work-Funktor durchspielen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
|
|
@ -86587,6 +86665,140 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697755558855" ID="ID_278365674" MODIFIED="1697741858009" TEXT="SchedulerStress_test">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1688337200875" ID="ID_1251284763" MODIFIED="1697735887738" TEXT="Nonfunktionale Anforderungen">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697473158929" ID="ID_555722340" MODIFIED="1697493162215" TEXT="Aufgaben">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697733005253" ID="ID_284566035" MODIFIED="1697735902191" TEXT="Leerlauf-Stresstest">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1697733279313" ID="ID_1511632308" MODIFIED="1697734150888" TEXT="Ziel: Feststellen des Implementierungs-Overhead">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Einen komplett leeren Job-Funktor wiederholt back-to-back (ohne Wartezeit) aufrufen; dabei das System nicht in die Sättigung treiben
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1697734151893" ID="ID_674126526" MODIFIED="1697734162364" TEXT="Problem: Laststeuerung">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1697734165115" ID="ID_1491991406" MODIFIED="1697734182886" TEXT="das sonstige System darf nicht in Sättigung gehen"/>
|
||||
<node CREATED="1697734183385" ID="ID_883287538" MODIFIED="1697734192010" TEXT="der BlockFlow-Allocator darf nicht degenerieren"/>
|
||||
<node CREATED="1697734330989" ID="ID_1732860802" MODIFIED="1697734334809" TEXT="Lösungsansätze">
|
||||
<node CREATED="1697734356370" ID="ID_1254835839" MODIFIED="1697734436578" TEXT="WorkForce nicht ganz auf Volllast">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
z.B. 7 Cores auf meinem 8-Core-System — damit die <i>sonstigen Sytem-aktivitäten</i> nicht zu Stau-Zuständen führen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1697734513005" ID="ID_803781887" MODIFIED="1697734840822" TEXT="immer nur eine Epoche rechnen mit Deadline=ASAP">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
immer nur so viele Jobs einstellen, daß eine Epoche nicht ganz voll wird; aber die Startzeiten extrem dicht zusammen legen, so daß im alles effektiv sofort berechenbar wird; dann kann man sinnvoll messen, wenn alles abgearbeitet ist: dazu einen Zeitmesser-Job verwenden; man kann die Zeitmessung <i>vor</i> oder <i>nach</i> dem Einstellen der Jobs starten
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1697734845040" ID="ID_348047225" MODIFIED="1697735849618" TEXT="Last mit gedämpfter Rückkopplung geregelt hochfahren bis zur Sättigung">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Bei diesem Ansatz wird eine Dauerlast erzeugt, indem immer ein Planungs-Chunk eine Zahl an Jobs erzeugt, die im Verhältnis zur Epochen-Größe steht (dabei kann auch durchaus auf eine Überlastung des BlockFlow-Allokators abgezielt werden, indem man immer das N-Fache der Block-Kapazität einstellt). Diese Jobs werden getaktet gemäß der aktuellen Dichte, aber diese Dichte wird langsam gesteigert, bis ein Feedback-Signal auftritt: nämlich wenn der reale Zeitpunkt des nächsten Planungs-Chunks verspätet ist, dann elastisch zurückregeln. Bei richtiger Abstimmung sollte sich dann ein »Lockstate« einstellen, von dem man einen Meßwert für die erreichbare Dichte ablesen kann
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697733137628" ID="ID_1249232397" MODIFIED="1697733148339" TEXT="Dependency-Notification-Stresstest">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1697733314115" ID="ID_537940927" MODIFIED="1697736103683" TEXT="Ziel: Overhead exzessiv vernetzter Activities">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Sollte ausgeführt werden wie der normale Leerlauf-Stresstest, aber nun mit zusätzlichen und zunehmend exzessiven Dependencies/Notifications in der kette; beobachtet wird die Degeneration der Leerlauf-Kapazität
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697733236455" ID="ID_698621499" MODIFIED="1697733269203" TEXT="Realtime Full-Load Test">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1697733438012" ID="ID_18653531" MODIFIED="1697733448582" TEXT="Ziel: Vollast unter Zeitbeschränkung"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697736109528" ID="ID_1697493338" MODIFIED="1697736119264" TEXT="Correctness under Load">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1697736121279" ID="ID_1940006605" MODIFIED="1697736240729" TEXT="Ziel: Fehler in der Ausführungslogik ausschließen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Anders als in den Leerlauf-Tests wird hier eine überprüfbare Berechnung ausgeführt, die aber auch Dependencies mit einschließt. Auch unter Vollast muß die Prüfsumme korrekt sein. Für diesen Test könnte man das System sogar kurzzeitig extrem in die Sättigung treiben (und trotzdem muß das Ergebnis stimmen)
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1695555555555" ID="ID_1032000470" MODIFIED="1697744929394" TEXT="#1344 Implement performance Tests for Scheduler">
|
||||
<linktarget COLOR="#fde0ca" DESTINATION="ID_1032000470" ENDARROW="Default" ENDINCLINATION="-1678;88;" ID="Arrow_ID_552669850" SOURCE="ID_849227497" STARTARROW="None" STARTINCLINATION="-1536;97;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1697741769556" ID="ID_1899821736" MODIFIED="1697741852506" TEXT="brauche eine reproduzierbare komplexe Last">
|
||||
<arrowlink COLOR="#9b2277" DESTINATION="ID_509932054" ENDARROW="Default" ENDINCLINATION="-374;-90;" ID="Arrow_ID_1082315358" STARTARROW="None" STARTINCLINATION="-1039;60;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697732758603" ID="ID_1796420959" MODIFIED="1697741861608" TEXT="SchedulerUsage_test">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1688337200875" ID="ID_470331599" MODIFIED="1697732829679" TEXT="Scheduler Service as seen from outside">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697473158929" ID="ID_966442877" MODIFIED="1697493162215" TEXT="Aufgaben">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697484506891" ID="ID_769714933" MODIFIED="1697732878690" TEXT="Verwendung des Scheduler-API">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697736275498" ID="ID_1296200966" MODIFIED="1697736334906" TEXT="Einsatz wie im Play-Process">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Es wird aber kein Play-Prozess gebaut, sondern die entsprechende Funktionalität direkt aus dem Test aufgebaut
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1688051068000" ID="ID_555375367" MODIFIED="1689994063022" TEXT="Thema: Arbeitsspeicher">
|
||||
|
|
@ -88822,7 +89034,215 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1688336338313" ID="ID_1758461421" MODIFIED="1688336340923" TEXT="Integration"/>
|
||||
<node CREATED="1688336338313" ID="ID_1758461421" MODIFIED="1688336340923" TEXT="Integration">
|
||||
<node CREATED="1697737141910" ID="ID_1785585308" MODIFIED="1697737251106" TEXT="sinnvolle Test-Last">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1697737421147" ID="ID_1561659970" MODIFIED="1697741708429" TEXT="Möglichkeiten untersuchen">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1697737450229" ID="ID_209380993" MODIFIED="1697738314019" TEXT="Rahmen">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1697737465179" ID="ID_1204584376" MODIFIED="1697737798383" TEXT="selber Programmieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
An Libraries ist nur erlaubt, was ohnehin <i>in Reichweite liegt</i> (also elementare Video-Libraries und Cairo zum Zeichnen). Der Code wird Teil des Projekts, sollte daher in C++ stehen und allen Qualitätsstandards entsprechen. Sinnvollerweise wird der Code in ein ad-hoc-Plugin gepackt, um den Umgang mit Dependencies zu erleichtern
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1697737473137" ID="ID_1145748705" MODIFIED="1697737860816" TEXT="nicht viel Zeit darauf verwenden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
„viel“ ist relativ. Es darf schon Spaß machen, aber es sollte nicht in ein monatelanges Kunst-Projekt ausufern
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1697737543296" ID="ID_635918288" MODIFIED="1697738301537" TEXT="sollte gewisse Lastformen erzeugen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Der Datengenerator bewegt sich in einem gewissen Rahmen: bei hinreichend kleiner Auflösung muß er zuverlässig und ohne Aussetzer in Echtzeit laufen, und zwar mit 30fps. Idealerweise gibt es Parameter, um die Last stark zu erhöhen, so daß man ihn auch zum Test von Qualitäts-Renders heranziehen kann. Weiterhin sollte es sich im Wesentlichen um eine computational load handeln; ein gewisser Speicherbedarf ist dabei akzeptabel, externe IO nicht.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1697737491239" ID="ID_815953078" MODIFIED="1697738077728" TEXT="Ergebnis soll Stil haben">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Da das Projekt auf eine gewisse öffentliche Sichtbarkeit zusteuert, werden alle sichtbaren und leicht faßbaren Elemente auf subtile Weise zu einer Visitenkarte. Dieser Playback ist so ziemlich das Erste und Einzige seit vielen Jahren, das man sehen und erfassen kann. Es sollte daher klar sein, daß es in jeder Form einen Eindruck hinterläßt.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<node CREATED="1697737592482" ID="ID_582917015" MODIFIED="1697737597269" TEXT="der Code wird gelesen werden"/>
|
||||
<node CREATED="1697737597843" ID="ID_312918314" MODIFIED="1697737604211" TEXT="das Ergebnis sehen auch Laien"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1697738335886" ID="ID_1301961424" MODIFIED="1697738346874" TEXT="Ideen für generative Graphik">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1697738374212" ID="ID_1243145753" MODIFIED="1697738446795" TEXT="Spektrum">
|
||||
<node CREATED="1697738383296" ID="ID_574153942" MODIFIED="1697738385097" TEXT="retro"/>
|
||||
<node CREATED="1697738378505" ID="ID_1742589890" MODIFIED="1697738382084" TEXT="nerdig"/>
|
||||
<node CREATED="1697738400023" ID="ID_1315204869" MODIFIED="1697738402081" TEXT="magisch"/>
|
||||
<node CREATED="1697738386902" ID="ID_284499392" MODIFIED="1697738398842" TEXT="futuristisch"/>
|
||||
<node CREATED="1697738406139" ID="ID_1314876040" MODIFIED="1697738411629" TEXT="wissenschaftlich"/>
|
||||
</node>
|
||||
<node CREATED="1697738465629" ID="ID_95162985" MODIFIED="1697738467361" TEXT="Quellen">
|
||||
<node CREATED="1697738525765" ID="ID_1218093676" LINK="https://flam3.com/flame_draves.pdf" MODIFIED="1697738678279" TEXT="Scott Draves: Flame-Algo">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Beschreibt das Prinzip rekursiver fraktaler Funktionen, und stellt dann Erweiterungen vor, die in seinem »Flam3« implementiert sind. Auf dieser Basis hat er »Electric Sheep« aufgebaut, welches auch die Grafik-Definitionen selber durch einen generativen Prozeß weiterentwickelt.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1697739021864" ID="ID_924992668" LINK="http://www.complexification.net" MODIFIED="1697739033149" TEXT="Complexification-Net">
|
||||
<node CREATED="1697739042984" ID="ID_342887840" MODIFIED="1697739052554" TEXT="Stichwort »Substrate«"/>
|
||||
</node>
|
||||
<node CREATED="1697738795321" ID="ID_738530174" LINK="https://www.freecodecamp.org/news/an-introduction-to-generative-art-what-it-is-and-how-you-make-it-b0b363b50a70/" MODIFIED="1697738825319" TEXT="freeCodeCamp: An introduction to Generative Art (10/2018)"/>
|
||||
<node CREATED="1697738836356" ID="ID_1866781648" LINK="https://www.generativehut.com/tutorials" MODIFIED="1697738850171" TEXT="GenerativeHut : Tutorials">
|
||||
<node CREATED="1697738961811" ID="ID_257142214" LINK="https://www.generativehut.com/post/recreating-the-noise-orbit" MODIFIED="1697738988141" TEXT="Tutorial: Noise-Orbit">
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1697738474108" ID="ID_1262573737" MODIFIED="1697738479399" TEXT="Konkretisierung des Rahmens">
|
||||
<node CREATED="1697738498130" ID="ID_921865940" MODIFIED="1697738501879" TEXT="mit Cairo zeichnen"/>
|
||||
<node CREATED="1697738502632" ID="ID_474402832" MODIFIED="1697738512127" TEXT="einfach aber mit raffizierter Palette"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1697739167511" ID="ID_462701673" MODIFIED="1697741726482" TEXT="Last für Messungen">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1697739192956" ID="ID_1199894921" MODIFIED="1697739211725" TEXT="Korrektheit muß verifizierbar sein"/>
|
||||
<node CREATED="1697739215921" ID="ID_880522211" MODIFIED="1697739222701" TEXT="Last-Parameter sollten steuerbar sein"/>
|
||||
<node CREATED="1697739223592" ID="ID_1177697704" MODIFIED="1697741617543" TEXT="Naheliegend: Prüfsummen-Kette">
|
||||
<arrowlink COLOR="#fcffac" DESTINATION="ID_509932054" ENDARROW="Default" ENDINCLINATION="44;-115;" ID="Arrow_ID_388403838" STARTARROW="None" STARTINCLINATION="-227;20;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1697739240230" ID="ID_1190486942" MODIFIED="1697739258607" TEXT="wie in Git oder Blockchain">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1697739420322" ID="ID_1934582663" MODIFIED="1697739433348" TEXT="Vorgabe: stabiler Berechnungs-Strom">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1697739314316" ID="ID_1389662036" MODIFIED="1697739320743" TEXT="Randomised Side-Chains">
|
||||
<node CREATED="1697739585271" ID="ID_214582424" MODIFIED="1697739867461" TEXT="Zahlenfolge in eine Hash-Summe einbuchen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<ul>
|
||||
<li>
|
||||
es wird eine echte Hash-Funktion verwendet, die auch Vertauschungen erkennt
|
||||
</li>
|
||||
<li>
|
||||
eingerechnet wird in jedem Berechnungsschritt jeweils ein lokaler Zahlenwert
|
||||
</li>
|
||||
<li>
|
||||
dieser ergibt sich im einfachsten Fall aus einem laufenden Zähler
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1697739654662" ID="ID_200209889" MODIFIED="1697740265583" TEXT="„zufälliger“ limitierter Rückgriff auf ältere Ergebnisse">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Ein lokal berechneter Hashwert kann als pseudo-Zufallszahl verwendet werden, um eine gewisse Zahl an Neben-Zweigen zu erzeugen; diese greifen in einem limitierten Rahmen auf vorausgehende Ergebnisse zurück. Diese werden dadurch zu Voraussetzungen.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1697739748719" ID="ID_1722048889" MODIFIED="1697740071380" TEXT="lokale Iteration um Last zu erzeugen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
die Hash-Funktion wird N-fach auf das Zwischenergebnis angewendet, für großes N. Damit kann CPU-Last erzeugt werden
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1697740269884" ID="ID_1006441438" MODIFIED="1697740623243" TEXT="ist deterministisch und parallelisierbar">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Wenn man nicht immer auf den unmittelbaren Vorgänger zurückgreift, sondern auf zufällige Vorgänger, entsteht ein chaotischer DAG, der aber aufgrund der Limitierung stets Forschritt macht. Durch die teilweise lokale Entkoppelung der Zweige wird die Berechnung parallelisierbar; da sich jede Entscheidung aber aus den Eingangsdaten ergibt, muß das Ergebnis 100% deterministisch sein.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1697740624211" ID="ID_1773119907" MODIFIED="1697740764084" TEXT="für den Test wird die Verzweigungsstruktur vorgeneriert">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Das Ergebnis muß ohnehin einmal auf konventionellem Weg berechnet werden; an dieser Stelle kann man die sich ergebende Verknüpfungs-Struktur ausgeben, um daraus verknüpfte Render-Jobs zu machen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697740783336" ID="ID_509932054" MODIFIED="1697741849980" TEXT="TestChainLoad">
|
||||
<linktarget COLOR="#9b2277" DESTINATION="ID_509932054" ENDARROW="Default" ENDINCLINATION="-374;-90;" ID="Arrow_ID_1082315358" SOURCE="ID_1899821736" STARTARROW="None" STARTINCLINATION="-1039;60;"/>
|
||||
<linktarget COLOR="#fcffac" DESTINATION="ID_509932054" ENDARROW="Default" ENDINCLINATION="44;-115;" ID="Arrow_ID_388403838" SOURCE="ID_1177697704" STARTARROW="None" STARTINCLINATION="-227;20;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1697740826362" ID="ID_1948434460" MODIFIED="1697740845523" TEXT="eine verifizierbare verzweigte Berechnungs-Last">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697740857815" ID="ID_1544079509" MODIFIED="1697740865360" TEXT="in separatem Test entwerfen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1697741633966" ID="ID_787175245" MODIFIED="1697741674433" TEXT="Nutzen vorher klären">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1697741661950" ID="ID_1735458016" MODIFIED="1697741661950" TEXT="Darstellung der Abhängigkeits-Struktur"/>
|
||||
<node CREATED="1697741689551" ID="ID_1012140830" MODIFIED="1697741694906" TEXT="Art der Datenübergabe"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697743909120" ID="ID_483537733" MODIFIED="1697743924734" TEXT="#1346 reproducible computational load">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1697740877587" ID="ID_1275890321" MODIFIED="1697741670215" TEXT="TestChainLoad_test">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1697737304920" ID="ID_1305412516" MODIFIED="1697737436489" TEXT="DemoVideoGenerator">
|
||||
<arrowlink COLOR="#6f587c" DESTINATION="ID_460039330" ENDARROW="Default" ENDINCLINATION="-263;-171;" ID="Arrow_ID_48943827" STARTARROW="None" STARTINCLINATION="-695;79;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1685399667668" ID="ID_463573092" MODIFIED="1685399687234" TEXT="Begriffe">
|
||||
|
|
@ -89685,8 +90105,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1512923629577" ID="ID_617347424" MODIFIED="1557498707237" TEXT="Backend">
|
||||
<node CREATED="1680565608115" ID="ID_1114884704" MODIFIED="1680565612050" TEXT="Hilfsmittel">
|
||||
<node CREATED="1680565613038" ID="ID_1202060017" MODIFIED="1680565616857" TEXT="Content-Generator">
|
||||
<node CREATED="1680565626147" ID="ID_460039330" MODIFIED="1680566930977" TEXT="Test-Content für Playback">
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1680565626147" ID="ID_460039330" MODIFIED="1697737436489" TEXT="Test-Content für Playback">
|
||||
<linktarget COLOR="#6f587c" DESTINATION="ID_460039330" ENDARROW="Default" ENDINCLINATION="-263;-171;" ID="Arrow_ID_48943827" SOURCE="ID_1305412516" STARTARROW="None" STARTINCLINATION="-695;79;"/>
|
||||
<linktarget COLOR="#fec499" DESTINATION="ID_460039330" ENDARROW="Default" ENDINCLINATION="-632;68;" ID="Arrow_ID_1437229627" SOURCE="ID_988488968" STARTARROW="None" STARTINCLINATION="-241;31;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -95790,6 +96212,10 @@ class Something
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1695555555555" ID="ID_849227497" MODIFIED="1697744929393" TEXT="#1344 Scheduler performance tests">
|
||||
<arrowlink COLOR="#fde0ca" DESTINATION="ID_1032000470" ENDARROW="Default" ENDINCLINATION="-1678;88;" ID="Arrow_ID_552669850" STARTARROW="None" STARTINCLINATION="-1536;97;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1680388296693" ID="ID_283603911" LINK="https://issues.lumiera.org/ticket/1284" MODIFIED="1680388318115" TEXT="#1284 Render Engine operational control">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
|
|
@ -95880,7 +96306,16 @@ class Something
|
|||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1679783694673" ID="ID_455505067" MODIFIED="1679783698044" TEXT="dokumentieren"/>
|
||||
<node CREATED="1679783694673" ID="ID_455505067" MODIFIED="1679783698044" TEXT="dokumentieren">
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#5c4d6e" CREATED="1695555555555" FOLDED="true" HGAP="100" ID="ID_1867742420" MODIFIED="1695555555555" TEXT="#1111 Placehoder" VSHIFT="86">
|
||||
<arrowlink COLOR="#fde0ca" DESTINATION="ID_1436808339" ENDARROW="Default" ENDINCLINATION="-1090;99;" ID="Arrow_ID_449422905" STARTARROW="None" STARTINCLINATION="-1258;160;"/>
|
||||
<icon BUILTIN="bell"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#990000" CREATED="1695555555555" ID="ID_1436808339" MODIFIED="1695555555555" TEXT="#1111 Implement: Placehoder">
|
||||
<linktarget COLOR="#fde0ca" DESTINATION="ID_1436808339" ENDARROW="Default" ENDINCLINATION="-1090;99;" ID="Arrow_ID_449422905" SOURCE="ID_1867742420" STARTARROW="None" STARTINCLINATION="-1258;160;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue