Thomas Meinike W. v. Klewiz-Str. 3 D-06132 Halle E-Mail: meiniket@mailserv.rz.fh-merseburg.de Informationen zum Programm Pentium-Test (PENTEST1.EXE) ------------------------------------------------------ Das Programm PENTEST1.EXE testet unter Windows den Coprozessor mittels einer numerischen Berechnung, welche Null als Ergebnis bringen sollte. Im Zusammenhang mit dem sog. FDIV-Bug des Pentium-Prozessors wurde das Testprogramm entwickelt. Details zum Pentium-Problem wurden in den Zeit- schriften 'ct', 'PC Professionell' und 'CHIP' jeweils in den Ausgaben 1/95 behandelt und sollen hier nicht weiter diskutiert werden. Fuer den Anwender ist es schwierig einzuschaetzen, welche Konsequenzen bei Berechnungen entstehen koennen. Rechenintensive PC-Software wie z.B. Mathematica, Excel oder Gaussian 92 fuer Windows wird mit grosser Wahr- scheinlichkeit ueber diesen Fehler stolpern. Dabei sind nicht nur Prim- zahlen betroffen. Das Testprogramm wurde urspruenglich entwickelt, um die Unterstuetzung des Coprozessors in Visual Basic-Programmen auszutesten, da in der Dokumentation und keinem mir bekannten Buch dazu etwas zu finden war. Tatsaechlich wird der Coprozessor (soweit vorhanden) bei der Verwendung des Datentyps 'double (#)' angesprochen. Dabei ist von einer Genauigkeit von maximal 14 Stellen auszugehen. Das ist auch die Grenze im Pentium- Testprogramm. Die beobachteten Fehler liegen aber durchaus in der 6. bis 12. Stelle, so dass keine Rechenfehler des Programms zu den Abweichungen fuehren. Im Programm wird die Formel z = x - (x/y) * y verwendet, wobei fuer die Variablen x und y Werte vorzugeben sind. Zusaetzlich sind 12 Sets mit fehlertraechtigen Wertepaaren einbezogen worden. Damit kann sehr schnell ein Ueberblick gewonnen werden. Man kann auch sehr gut mit diesen Daten experimentieren, wenn z.B. zusaetzliche Kommastellen angefuegt werden. Ausblick -------- 1. Es wird demnaechst neu produzierte und hoffentlich bugfreie Pentium- Prozessoren geben; 2. Ueber einen Prozessortausch sollte man mit dem Haendler oder direkt mit Intel verhandeln; 3. In eigenen Programmen (Pascal oder C++) kann mit speziellen Routinen die FDIV-Division umgangen werden, kommerzielle Programme werden moeglicherweise in angepaáten Versionen verfuegbar sein; 4. unkritische (?) Anwendungen wie Textverarbeitungen oder Spiele sollten unveraendert lauffaehig sein (ein Pentium-User berichtete mir, dass DOOM ohne Probleme und schnell laeuft...); 5. Generell sollte die Pentium-Problematik zum Nachdenken ueber Genauig- keit von Computeranwendungen in allen Bereichen anregen. Zum Programm ------------ Das Programm laeuft unter Windows 3.1 und benutzt die Bibliothek VBRUN300.DLL. Diese sollte sich im \SYSTEM-Verzeichnis von Windows befinden und steht dann allen VB3-Programmen zur Verfuegung. Als Fehler werden alle Werte von z > 1E-15 behandelt. Bei jedem Programmlauf werden die Ergebnisse der durchgefuehrten Rechnungen in der Reportdatei 'PENTEST1.RPT' dokumentiert: x = ... y = ... z = ... x/y = ... (zusaetzlich fuer Vergleichszwecke). Zu beachten ist, dass diese Datei jeweils neu angelegt (ueberschrieben) wird. Zur weiteren Verwendung empfiehlt sich das Umbenennen / Kopieren vor einem neuen Programmstart. Alle Hinweise zum Programm bitte an obige Adresse oder per E-Mail. Ein letztes Wort ---------------- BASIC IST PROFESSIONELL! T. Meinike, 10.01.1995