Mittwoch, 14. Oktober 2009

(Tag 287) Placebo- bzw. Gremlineffekt

Also, ich hab ja am Anfang meiner Zeit hier öfter mal erzählt, dass ich und mein Chef in unserem Labor eine ziemlich zusammengeschusterte Messanlage gebaut haben. Hauptproblem der Sache ist, dass es einen Computer gibt, der den Stimulus erzeugt und abspielt (Töne und sowas) und ein anderer Computer die Reaktion der Nervenzellen darauf aufzeichnet. Klingt einfach, ist aber schwer: denn ich will mit hoher Präzision (+/- 10 Mikrosekundenbereich) Stimulus und Nervenzellantwort vergleichen. Und so zwei Computer dazu zu bringen sich so genau abzusprechen, erfordert mehr Aufwand als man denkt.
Kurzfassung der Lösung: der eine Computer fragt den zweiten, ob er bereit zum Aufzeichnen eines Batzens von Messungen ist (z.B. 21 verschiedene Tonhöhen, 10 mal wiederholt). Wenn der mit "ja" antwortet, macht sich Computer 1 bereit zum Stimulus-Abspielen und beginnt dann damit, die z.B. 21 verschiedenen 10er Sets abzuspielen -- nicht ohne vor jedem Zehnerset ein spezielles Signal, einen Synchronisationspuls, vorwegzuschicken. Wenn der zweite Computer diesen Synchpuls bemerkt, weiß er dass nun ein neuer Zehnerset anfängt.
So, nun wisst ihr Bescheid. Genau damit gab es am Anfang Probleme, denn Computer 2, bzw. die (leider proprietäre) Software für das Aufzeichnen von Nervensignalen dort, ist scheiße... eine unbestimmte und von der Belastung der CPU abhängige variable Zeit ist nötig, um die Daten auf die Festplatte zu schreiben. Manchmal verpasste deshalb Computer 2 einen der Synchpulse, ohne dass man ohne weiteres nachvollziehen konnte, welchen. Also haben wir, im März oder so, einen Hack in die Software auf Computer 1 eingefügt -- er solle einfach eine sichere Zeit lang (ca. 200 ms) warten, ehe er den nächsten Zehnerset vorspielt.
Gestern haben wir bemerkt, dass dieser Hack nie funktioniert hat! Er war an einer Stelle in den Programmcode eingefügt, wo er keinen Effekt hatte, der Computer wartete während die Soundhardware den Stimulus abspielte, und nicht danach! Aber, und das ist das beste: ich hab die Probleme mit den verpassten Synchpulsen seitdem nicht mehr gehabt! Immer problemlose Experimente!!
Verrückt, aber der reine Glaube (verquer, hörst du das??!) daran, das Problem behoben zu haben, hat ausgereicht! Ein echter Fall von Computer-Placebo. Beziehungsweise ein echter Fall von wohlwollendem Gremlin-Effekt (GE+). Da die Gremlins in dem Setup merkten, wie brav ich mich angestrengt habe und wie liebevoll wir versucht haben, die Anlage ans Laufen zu bringen, haben sie monatelang Computer 1 im richtigen Moment ein klein wenig aufgehalten (vielleicht an der Southbridge gekitzelt oder am Speicher gekniffen) und so Fehler vermieden.
Danke, Gremlins! Nun haben wir den Wartebefehl an der richtigen Stelle eingefügt und ihr könnt euch wieder anderen Dingen widmen... aber nicht fies werden, ne?

:-)

2 Kommentare:

Anonym hat gesagt…

Bei TDT Sys 3 machen die Geräte das - also das mit dem Absprechen. Der Rechner kann faul aufzeichnen. Und Gremlins haben die auch.
Meist ganz viele - Tücken Der Technik eben.

Schönes WE

Thommy hat gesagt…

Ja, das ist bei Sys2 auch schon so, und der eine Computer der an dem System hängt ist auch problemlos. Aber es gibt eben noch den zweiten unabhängigen Computer, der die Daten vom Patchverstärker verarbeitet.
Und die Sachen mit den Sys3 Tücken sind klasse... wenn man irgendwas "macht" (z.B. Daten übertragen) geht die maximale Samplingrate massiv in den Keller, weil der blöde Prozessor total überlastet ist.
Glücklicherweise hat unsere Rx6 (oder wie das heisst) 5 Prozessoren. Schlauerweise verteilt die graphische Programmiersprache "der Firma" die Last nicht (!) auf die Coprozessoren, das muss man selber machen. Und, noch irrer: die Arbeit mit der Datenübertragung muss (!) im Hauptprozessor laufen.
Wahnsinns Architektur.

Hab aber gehört, dass die allerneuste Generation von Sys 3 (die mit dem vielen Geblinke dran) all diese Probleme nicht mehr haben.