Loadbalancing Tips gesucht

  • Folgendes Problem:
    Ich möchte Dateien mehrfach auf verschiedenen Medien speichern (ich meine jetzt nicht unbedingt RAID1 Spiegelung). Gibt es einen Treiber oder eine andere Soft- oder Hardware, die intelligent die Datei von der Platte nutzt, die zur Zeit am wenigsten beansprucht wird?


    Beispiel:
    Audio Samples 1, 2, 3 sind jeweils auf beiden Platten E: und F: .


    Zeitleistenmäßige Abspielfolge:
    1. Sample von 0-15 Sek.
    2. Sample von 7-9 -Sek.
    3. Sample von 8-20 Sek.


    Dabei soll ein intelligenter "Loadbalancing-Treiber" entscheiden, daß Sample 1 von Platte E: genommen wird, Sample2 von Platte F: und Sample 3 muss von Platte F: kommen, so daß die Software intelligent genug ist zu entscheiden, daß Sample 3 wegen der zeitlichen Abfolge und Überschneidung von Platte F: und nicht wieder von Platte E: abgespielt werden soll. Die Abspielfolgen sollen also mosaikartig ineinandergreifend von den Platten abgespielt werden.


    Desweiteren sollten die Dateien natürlich unter einem logischen Laufwerk abgebildet werden. Man definiert beispielsweise Laufwerk Z: als Pfad, um intelligent (im Hintergrund) von den Laufwerken E: und F: die gespiegelten Dateien nach obiger Entscheidungsmatrix abzuspielen.


    (Ich bin nicht ganz sicher, ob RAID1 grundsätzlich vielleicht so arbeitet, ob es nur spezielle hochentwickelte RAID1 Systeme so machen oder ob das von RAID1 nicht so gemacht wird. Bei Raid 1 geht es ja nicht unbedingt um Optimierung, sondern einfach um Datenspiegelung).


    Selbiges Verhalten wäre ja auch beim "Live-Videoschnitt" von Vorteil.


    Gibt es solche Soft- oder Hardware, die obige Optimierung durchführt?

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

    Einmal editiert, zuletzt von staffel ()

  • HAllo MArcus,


    also ein Raidkontroller kann das nicht.


    Raid 1 - Datensicherheit
    Raid 0 - Performance


    Und ob es Software gibt die sowas kann glaube ich nicht. Ich hab zumindest noch nie von sowas gehört. Wenn der Dateizugriff
    anhand von der momnetanen Performancewerten einer Platte oder eines Array stattfinden soll, müsste ja auch der Contend
    immer auf allen Paltte sein und dynamisch indexiert werden. Wenn die Clips nicht auf allen Paltte sein sollen oder können, könnte man das Loadballancing vergesse. Weil wenn die Applikation sagt nimm Clip 3 und der ist nur auf einer Platte die gerade viel Last hat nimmt sie den Clip nicht, oder muss warten und Du hast nichts gewonnen. Also im Schnittprogramm müsste man einen Datei laden die nur
    einen Container enthält, so eine Art Refferenz AVI. Und dann muss das Schnittprogramm entscheiden auf welcher
    Platte gerade die kleinst Last herrscht, und diesen Clip dann von da nehmen.


    Wenn ich das richtig verstanden habe glaub ich nicht das das geht.

    ################################################
    #### Ciao und Servus
    #### Armin


    HD Storm Plus -- Win7 64bit Ultimate -- CPU i7 920 -- GigaByte GA-EX58-UD4P -- 15 GB G-Skill Ram -- Asus GTX280 -- Yamaha N12 -- Blu-Ray LG BH08LS20 --
    Sony HXR-NX5E -- Sony HDR XR-500 -- Nikon D7000 -- HD-Vorschau Monitor-LG FLATRON W2261 VP -- SD-Vorschau Monitor-Sony PVM-14M2E

  • Das meinte ich ja, daß jeder Clip auf jeder Platte ist. Zur Vereinfachung habe ich hier mal mit 2 Platten beschrieben.


    Die Techniken sind ja zum Teil schon in modernen Festplatten integriert, wie das Command-Queing. Da wird das zuerst gelesen, was gerade am Schreib-Lesekopf vorbeikommt. Es gibt ein Prefetch (Puffer/Cache) in jeder Festplatte und es gibt Techniken, wie lookahead. Das heißt, daß vorausschauend (dann allerdings anwendungsbasierend) gearbeitet werden kann. Nicht umsonst gibt es in Sequenzern einen Latenzausgleich. Sowas könnte man auch in Videoschnittprogramme einbauen. Mit einer genormten Schnittstelle sind solche Sachen kein Hexenwerk.


    Ich kenne ein bischen die Verfahren, jedoch arbeiten nur bestimmte Anwendungen anwendungsintern nach solchen Verfahren. Es fehlt eine Norm, die jede Anwendung nutzen kann.


    Sowas vermisse ich echt in Windows, daß eine derartige Optimierung vom Betriebssystem her möglich wäre. Man brauchte so eine Art Timeschedule, den die Anwendung intern erstellt und dann an das Betriebssystem weitergeben könnte. Dieses müsste dann die Schreib-/Lesezugriffe entsprechend durchführen. Solange dieses aber von Windows nicht unterstützt wird, brauchte man eine Treibersoftware, die einen solchen Dienst leisten würde.


    Einige Software macht programmintern schon Optimierungen, wie z.B. Premiere, welches bei der Definition eines Assets schon mal schaut, wie der Inhalt aussieht, wie die Wellenform des Tons errechnet wird, der Filmstrip-Bildercache angelegt wird. Am Ende müsste man doch nur noch einen weiteren Schritt zur weiteren Optimierung machen. Edius könnte das auch. Es generiert ja schon Schnittlisten. Darauf könnte man ja schon aufsetzen und weitere Optimierungen hinzufügen.


    Hoffentlich erfinde ich hier nicht das Rad neu. Aber ich habe dererlei "Quantensprung" noch bei keinerlei Software entdeckt. Wahrscheinlich, weil die meißten Otto-Normal-Cutter mit Festplattenplatz in der Hinsicht geizen und eine Sample oder Clipverwaltung selbst von Hand machen. (wie uncool)

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Dabei soll ein intelligenter "Loadbalancing-Treiber" entscheiden, daß Sample 1 von Platte E: genommen wird, Sample2 von Platte F: und Sample 3 muss von Platte F: kommen, so daß die Software intelligent genug ist zu entscheiden, daß Sample 3 wegen der zeitlichen Abfolge und Überschneidung von Platte F: und nicht wieder von Platte E: abgespielt werden soll. Die Abspielfolgen sollen also mosaikartig ineinandergreifend von den Platten abgespielt werden.


    Ich frage mich ernsthaft mit welchen Festplatten Sie arbeiten wenn obiger Aufwand schon bei Audio Sample's notwendig ist. Ich sehe selbst bei einem vernünftigen Festplatten System nicht mal einen solchen Bedarf im Video Bereich.

  • Western Digital Raptor WD1500ADFD und WD740ADFD. Schon flotte Platten, aber mit Gigastudio und GVI kommt man ab einer Anzahl von Spuren schon in Bedrängnis. Deswegen arbeiten viele Profis mit einem Setup für 4 bis 5 PCs, wo sie dann jedes Instrument eines Orchesters in den unterschiedlichen Spielweisen (Legato, Pizzicato, Spizzicato, Spizzicatissimo, ConLegno, Expressivo, Fluttering, Vibrato, BowUp, BowDown, ... ) verteilen. Da kann man dann eine Partitur live spielen.
    Diese Aufteilung wird übrigens nicht gemacht, weil da so überaus viele Spielweisen zugleich spielen, sondern, um jede Spielweise, wenn nötig, ohne Programmwechsel spielen zu können.
    Ich sag mal so. Wenn ich eine Taste einer Samplebibliothek z.B. SonicImplants StringCollection anschlage, werden teilweise 4 Samples ausgelöst. Das kommt durch Layering und Attack oder Release-Phase zustande, wobei die Samples teilweise übergeblendet werden. Es gibt natürlich auch GeneralMidi-Soundkarten, wie eine Soundblaster, die ihre Sounds OnBoard haben. Dafür klingen sie dann, wie im Badezimmer aufgenommen.


    Mit einerOptimierung, wie von mir oben beschrieben, könnte man die gleiche Abspielqualität, mit 2 PCs erhalten, wie oben mit 4 oder 5.


    Ich denke auch im Videobereich kann das vorteilhaft sein, wenn man nicht, wie ich mit einer Kamera SD-Material schneidet, sondern von 9 Kameras HD-Material mit PIP und Überblendungen. Vielleicht tritt der Engpass ja auch schon früher auf, ich habe da keine Erfahrung. Diese Erfahrung dürften hier wahrscheinlich auch die wenigsten, wenn überhaupt jemand hier haben. Ich gehe mal davon aus 1 Hintergrundvideo und 4 Pips in HD, wird so manches RAID-System überfordern, was ein paar direkt zugeordnete Festplatten locker verarbeiten könnten. Nur kommt es da auf die Zuordnung der Clips an, die ich durch mein oben beschriebenes "Autoverteil und Zuordungssystem" automatisieren und optimieren möchte.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

    2 Mal editiert, zuletzt von staffel ()

  • Vielleicht mal mit nem' Flashdrive oder einer Ramdisk probieren...


    Flashdrive habe ich schon probiert. Ist zu lahm und zu teuer für den wenigen Speicher. Ramdisk ist zwar schnell, aber mein Mainboard kann nur 16 Gigabyte. Ist etwas wenig bei meiner 300 Gigabyte Sample-Collection.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

    Einmal editiert, zuletzt von staffel ()

  • Ich hatte mal überlegt, ob ich vielleicht 100 GB Orchestersounds auf 15 USB2.0-Sticks packe (a 8GB) . Da man ja nicht alle Spielweisen zugleich braucht, kann man auf einen Stick ja ruhigen Gewissens 3-4 Spielweisen eines Instruments draufpacken. USB kommt locker mit über 20 Sticks klar. Wenn man die noch auf mehrere Controller verteilt, hat man schellen, verzögerungsfreien Zugriff auf jeden Sound. Allerdings solte man dann die hochwertigen (20-30mb/s) Version der USB-Sticks benutzen, sonst müsste man gegebenenfalls auf noch mehr kleinere Speicher zurückgreifen, damit die Datenrate ausreicht, um die Audiodaten zu streamen. Das kann aber wiederum im USB-Protokoll trotz der theoretisch möglichen 127 Geräte an einem Controller zu Einschränkungen durch Overhead führen. Außerdem ist der Verschnitt größer oder manche Soundbank passt nicht in kleine 1 oder 2 GB-Sticks. Also lieber eine kleine flotte Anzahl an USB-Speicher-Sticks.


    Was hier im Samplebereich vielleicht noch funktionieren könnte, wird im Videobereich bei einigen Terabytes über das mögliche hinaus gehen. Erst recht, wenn man dann die Clips in Häppchen teilen muss, damit sie auf einen Speicherstick passen. Deswegen sehe ich immernoch einen Sinn in meiner Verfahrensweise mit Festplatten.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Normal sollte wohl der verwendete Sequencer in der Lage sein die verwendeten Samples im RAM zu puffern... das mit einem speziellen "Treiber" erachte ich für Unsinn, der Verwaltungsoverhead wäre derart groß dass am Ende kein zusätzlicher Nutzen rauskommt.


    Nimm ein RAID-0 oder RAID-5 / 0+1 wenn's nicht nur schnell sondern auch sicher sein muss, das sollte ja wohl ausreichen. Am besten einen Controller welcher selber noch über einen großen Pufferspeicher verfügt.


    Und dass sowa spezielles nicht billig ist dürfte klar sein... Solid State Laufwerke schaffen derzeit lesend bis zu 100 Megabyte pro Sekunde, günstigere immerhin noch um die 50 - 60 fast ohne Zugriffszeit.


    Ich sehe ehrlich das Problem nicht, und spätestens seit der Aussage mit den USB-Sticks frage ich mich ob Du uns hier verschaukeln willst.

  • Mann Staffel, du arbeitest doch mit Steini Software. Nimm dir doch einfach ein Instrument, mach die entsprechende Spur fettig und dann einen Freeze. Dann die nächtste und nächste und ....


    Oder möchtest du wirklich Beethovens Neunte per Midi File ad Hoc abspielen? :D

  • Genau. Die Wiener Philharmoniker auf Knopfdruck, das wärs. Ne, bisher mußte ich dann auch die Pille mit dem Freezen schlucken. Im Moment mit dem Nuendo4 mit NEK stehe ich auf dem Schlauch. Das GVI (GigaVirtualInstrument) ist pro Kanal zugeordnet, was das Laden eines einzigen VSTi vom Typ GVI notwendig macht, aber das Freezen damit scheint nicht zu funktionieren, da Nuendo immer sagt, daß kein Kanal benutzt wird. Irgendwie wird da jeder benutzte Instrumentenkanal in ein leeres GVI geladen. Im Moment blicke ich da noch nicht durch.


    Ich gehe mal davon aus, daß das GVI geladen werden muss, um im Speicher zu sein, aber die üblichen 16 Kanäle so, wie alt bekannt, das scheint nicht mehr zu funktionieren. Ich muss nochmal nachlesen. Jedenfalls habe ich jetzt bei, ich meine 12 GVI-Spuren (nicht Audiospuren), ein Haken in den Instrumenten auf meinem DualCore-Laptop. Teilweise gibt es sogar Abstürze, wenn ich 2x auf Stop drücke. Da arbeitet immer noch was nach. Wahrscheinlich geht das auf meinen Quads noch ein bischen besser. Das Speichern eines npr (NuendoProjektes von fast 5MB) dauert teilweise eine halbe Minute.
    Da das Einfrieren so im Moment nicht funktioniert, wie ich es kannte, mache ich pro Spur von Hand einen Mixdown. Das funktioniert. Oder ich mache einen kompletten Mixdown. Das funktioniert dann aber nicht mehr in Echtzeit. Ich habe das gestern mal mit einem Midi-File von der Oper "Carmen" probiert. Das geht nur offline. Soviel zu "Beethovens Neunte". Ich sag mal, wenn es live, ohne Freeze funktionieren würde. Das wäre einfach nur geil. Schon alleine, wenn man immer wieder mal was anstückelt oder kopiert und aufgrund von Effekten, wie Reverb wieder komplett neu Downmixen muß, weil die Audiofiles mit dem Nachhall einen schlechten Übergang zum angestückelten machen. (Das passiert halt, wenn man nicht, wie ein Musiker das Stück komplett einspielt, sondern wie ein Architekt Strophe, Refrain, ... alles hintereinander stückelt und erweitert.) Vielleicht habe ich auch einfach nur die falsche Arbeitsmethodik oder bin zu faul immer wieder neu downzumixen. Ich habe keine Ahnung, wie der Workflow eines Profi-Komponisten/-Arrangeurs ist.


    Das mit den USB-Sticks halte ich nach wie vor für eine Möglichkeit. Ich habe es nur noch nicht ausprobiert. Das wären ja dann sozusagen Mini SolidStateDisks, nur nicht so teuer. Und sooo schnell müssen sie ja auch nicht sein, da Viele davon auch guten Datendurchsatz liefern.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Und hier mal ein kleiner Vergleich deselben MIDI-Datei. Einmal vom Gigastudio einmal von einer 0815-Soundkarte. Ihr könnt ja mal raten was woher kommt.

  • So gesehen schon. Beides von derselben Soundkarte. Nur die Samples, die benutzt wurden sind einmal in Hollywood- und einmal in Waschküchenqualität. 8) Nur daß die Hollywoodqualität erheblich mehr Ansprüche and das Streaming von Platte stellt.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Also ich könnte jetzt nicht raus hören, was was sein soll.


    File B klingt gut - sofern das ganze auf Zirkusmanege, Kirmeskarussell oder ähnliches abzielt. Klingt wie Kirmesorgel, aber das imitiert es ganz gut.


    File A klingt wie ein jämmerlich gescheiterter Versuch, die Instrumente zu imitieren. Man erkennt, was es für Instrumente sein sollen, aber keines davon klingt wie das Instrument, sondern wie die Samples auf der 1MB Terratec Wavetable, die ich Anno "Schulzeit mit BNC-vernetzten LAN-Parties" mal als Aufsteck-Daughterboard für meine SB16 hatte (das war top-modern damals, bevor ich mir den puren Luxus einer Yamaha DB50XG mit 4MB Samplespeicher gegönnt habe)


    Ich nehme trotzdem an, dass A die Datei ist, die mit den Hollywood-Samples gemacht wurde, auf die du so stolz bist, da das nicht gerade ein typisches Lied für eine Kirmesorgel ist und man bei A erkennt, dass hier versucht wurde, Instrumente nachzumachen.

  • Stimmt. Es ist ja auch kein optimiertes MIDI-File, sondern nur ein GM-Midi-File. Jede Spur wurde mit einem Sound (in der Staccato-Version) belegt. Normalerweise müßte man ja noch unterscheiden, ob es ein längerer Legato-Ton ist oder ob die Geigen Bow-Up oder Bow-Down gespielt werden und vieles mehr. Das fehlt ja alles in so einem GM-File. Deswegen hört es sich ja auch etwas seltsam an, aber besser als File B allemal. Das ist eben das Problem. Man braucht das zu den Samples passende Spielgefühl. Dazu gehört die live-Fähigkeit des Systems. Sonst passt die Spielweise auch nicht zu den Samples.
    Solche Bibliotheken haben teilweise schon fertige Phrasen, wie eine 5th mit Hörnern oder so, damit der Tonwechsel auch authentisch klingt. Wenn da in einem GM-File die beiden Noten normal drinstehen, dann kommt bei so einem Sample nur Müll bei raus, da es 2x angespielt wird und nicht durchgespielt wird. Ähnliches gilt für Maciato und Glissando. Deswegen dienen solche Samples nur dafür, um ein Demo zu erstellen oder Billig-Spielemusik zu arrangieren. Damit man so ungefähr hört, wie es klingen soll. Dann wird es nochmal mit einem richtigen Orchester richtig eingespielt.


    Es ist ja auch ein Unterschied, ob der Geiger leise spielt oder der Tonfuzzi den Fader runterzieht, da die Obertöne und die Dynamik eine ganz andere ist.


    Um da eine direkte Rückkopplung vom Spiel zu bekommen braucht man entweder viele Systeme oder wenige optimierte. Wobei bei den PC-Preisen viele wahrscheinlich billiger sind als hochoptimierte. Aber man sollte den Strompreis auch nicht aus den Augen verlieren. Die Versorgungsunternehmen ziehen immer mehr die Daumenschrauben an, um immer mehr Geld zu scheffeln. So mancher PC hat da ein 500W Netzteil nötig, auch, wenn es nicht immer den Maximalstrom zieht. Da dreht sich der Zähler schon ganz schön.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Liebster Staffel,


    da hab ich mir mal die Arbeit gemacht, und die Carmen durch meine Rendering Farm im Rechenzentrum gejagt und nach 8 Stunden Rechnen das:


    Carmen.zip (eventuell in .rar umbenennen)


    Ne, Spass mal beiseite, die Musi wurde in 5 Minuten von Edirol Orchestral erstellt, ein unter 100 Euro VSTi und meines Erachtens der beste Kompromiss in Sachen Orchester. So richtig menschlich bekommt man sie Sache auch mit den besten Sample Monstern nicht hin, da ist es einfacher, alle Instrumente zu lernen und selbst einzuspielen..... :D :D

  • Ja, hört sich doch cool an. Für solche Player sind die GM-Midi-Files ja gedacht, damit man die Midi-Datei läd und direkt mit einem GM-kompatiblen Player abspielen kann. Und das hört sich doch ganz gut an.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5