Hayes Technologies - Software Speed Optimization

Geschwindigkeitsoptimierung · Software Speed Optimization · High Performance Computing · Number Crunching · C/C++ · Assembler · SIMD · MMX · SSE · SSE2 · SSE3 · 3DNow!

Über Hayes Technologies

Hayes Technologies wurde in 2001 durch Bryan Hayes gegründet, um Dienstleistungen für Software-Geschwindigkeit-Optimierung sowie Systemprogrammierung (Embedded / Realtime) anzubieten.

Bitte wählen Sie unter folgenden Themen:

 

Partieller Lebenslauf Bryan Hayes

Bryan Hayes

Bryan Hayes

 

Die folgende Tabelle gibt einen Überblick über die relevanten Teile des Lebenslaufes; Projekte sind weiter unten aufgeführt.

1967 Geboren in Frankfurt am Main
1983 Ersten Rechner gekauft, einen Sharp MZ-731, angefangen, in BASIC zu programmieren, Assembler und Pascal kurz darauf. Insbesondere von Assembler und maximaler Geschwindigkeit fasziniert.
1985-88 Entwicklung und Vertrieb einer Assembler Entwicklungsumgebung und später einer Extended BASIC Entwicklungsumgebung
1987 Abitur in Frankfurt am Main
1987 Beginn eines BWL-Studiums an der Hochschule St. Gallen (heute: Universität St. Gallen), Schweiz
1989 Freiberufliche Tätigkeit hauptsächlich für Basler & Berendsen GmbH1 (heute: Basler AG), eine Firma mit Fokus auf Industrielle Bildverarbeitung (Entwicklung, Produktion und Vertrieb von Systemen hauptsächlich für automatisierte optische Qualitätskontrolle)
1991-94 Fortsetzung des BWL-Studiums in Hamburg
1991-92 Leiter Software-Entwicklung der Basler & Berendsen GmbH
1993-95 Leiter Entwicklung der Basler GmbH (vormals Basler & Berendsen GmbH)
1995-97 Leiter New Business Development / Strategische Planung der Basler GmbH

Gründung eines neues Geschäftsbereiches "Machine Vision Components" (Entwicklung, Produktion und Vermarktung von Komponenten für Bildverarbeitungssysteme) und Leitung desselben

1997-98 Mitglied der Geschäftsführung der Basler GmbH

Zuständig u.a. für die Leitung des Geschäftsbereiches "Machine Vision Components" und New Business Development

1998-2001 Mitglied des Vorstandes der Basler AG (vormals Basler GmbH)

Zuständig u.a. für Corporate Development (insbesondere New Business Development, M&A, Forschung & Technologie)

2001 Gründung von Hayes Technologies

1 Das Unternehmen Basler AG bestand 1989 aus 2 Personen; 2001 hatte es fast 300 Angestellte, 3 Tochtergesellschaften (USA, Taiwan, Singapur) und ein internationales Vertriebs- und Service-Netzwerk; Börsengang 23.3.1999

Zum Seitenanfang zurück

 

Projekte

Die folgende Tabelle gibt eine Überblick über die relevantsten Projekte; kleinere Projekte (wie Apfelmännchenprogramme) sind nicht aufgeführt. Eine Reihe der Projekte hatte nachfolgende Versionen, die nicht gelistet wurden.

1984-85 Entwicklung einer Entwicklungsumgebung für Assembler mit Editor, Assembler, Re-Assembler, Debugging-Möglichkeiten (12000 Zeilen Assembler Code; inkl. aller Hardware-Treiber (Video, Kassette, Tastatur, FD); schnellster Assembler auf dem Markt: 2000 Zeilen/s auf einem 3.5 MHz Z80 Prozessor)

Sharp MZ-7x1 (3.5 MHz Z80); Sharp BASIC / BIOS; Z80 Assembler

1984-85 Entwicklung einer Grafik-Library zur Erweiterung des BASIC Interpreters

Sharp MZ-7x1; Sharp BASIC / BIOS; Z80 Assembler

1984-85 Entwicklung eines Ticket-Management Systems für ein Büro einer Fluggesellschaft

PC (8086); MS-DOS; C

1985-86 Entwicklung einer Entwicklungsumgebung für Extended BASIC mit Editor, Assembler, Re-Assembler, Debugging-Möglichkeiten (17000 Zeilen Assembler Code; inkl. aller Hardware-Treiber (Video, Kassette, Tastatur, FD); schnellste Floating-Point-Routinen auf dem Markt: 5000 FP Additionen/s, 2200 FP Multiplikationen/s auf einem 3.5 MHz Z80 Prozessor)

Sharp MZ-7x1 (3.5 MHz Z80); Sharp BIOS; Z80 Assembler

1986 Portierung der Assembler und Extended BASIC Entwicklungsumgebungen auf  Schneider CPC Computern

Schneider CPC (4 MHz Z80); Schneider BIOS / No OS; Z80 Assembler

1987-1988 Entwicklung eines 3D Vector-Graphik-Spieles

Atari ST + Commodore Amiga (8 MHz 68000 CPU); Atari + Amiga OS; C + Assembler

1989-90 Entwicklung der System Software für einen Z180 Einplatinencomputer
1989-90 Entwicklung eines Systems zum Lesen von Barcodes und Klarschrift (OCR) für schwierige industrielle Anwendungen (niedriger Kontrast, gekrümmte Oberflächen etc.)

Industrie-PC mit 80286+80287 (10 MHz); MS-DOS; C + x86-Assembler

1989-94 Entwickler einer I/O Library inkl. Fenstersystem (GUI)

PC; MS-DOS + eigene 32 Bit Erweiterung; C + x86-Assembly (16 and 32 Bit)

1990 Entwicklung eines Hardware-Treibers für einen Framegrabber mit integrierter Verarbeitung

Industrie-PC mit 80286; MS-DOS; C + x86 Assembler

1990 Entwicklung eines WYSIWYG Editor Moduls mit eigener virtueller Speicherverwaltung inkl. Swapping auf die HD

PC; Betriebssystem-unabhängiger Code; C (16 Bit)

1990-91 Entwicklung eines Farb-CD-Label-Inspektionssystems (Prüfung, ob der Aufdruck einer CD OK ist)

Industrie-VME-PC mit Bildverarbeitungsboard mit Pipeline-Prozessor und integriertem 68000 Prozessor; MS-DOS; C und 68000 Assembler und x86-Assembler

1990-91 Entwicklung der Software für eine Sortiermaschine für Kugellagerkugeln

Industrie-PC mit 80286; MS-DOS; C

1991-92 Entwicklung eines Hochgeschwindigkeits-Code-Lesesystems für PET-Flaschen

PC mit 80286 + Framegrabber mit TI TMS34010 CPU; MS-DOS; C + TMS34010 Assembler

1992 Entwicklung von Systemen zum Lesen von Barcodes und Klarschrift (OCR) auf CDs

PC mit 80286; MS-DOS; C + x86-Assembler

1993 Entwicklung von Hardware-Treibern für einen Framegrabber und eine Digital-I/O-Karte

PC mit Pentium; MS-DOS; C und x86-Assembler

1993 Entwicklung einer multithreaded Mehrkamera-Version des CD-Label-Inspectionssystems (siehe oben)

Industrie-PC mit i486 CPU; MS-DOS + RTKernel Echtzeit-Kernel + eigene 32 Bit Erweiterungen; C + x86 Assembler (16 and 32 Bit)

1993 Entwicklung einer multithreaded Mehrkamera-Version des CD-Code-Lesers (siehe oben) für CAN basierte Terminals

Industrie-PC mit i486 CPU; MS-DOS + RTKernel Echtzeit-Kernel + eigene 32 Bit Erweiterungen; C + x86 Assembler (16 and 32 Bit)

1995 Entwicklung des Boot-Code-Loaders für einen Framegrabber mit integrierter Pentium-CPU

Embedded Pentium; No OS; C+x86 Assembler

1995 Entwicklung eines 32 Bit Deadline (vs. Priorität) basierten Echtzeit-Kernel für x86 PCs

80386+ PCs; BIOS; 32 Bit C++ und x86-Assembler

1996 Entwicklung eines Microsoft Windows 95 Device Drivers (VxD) für einen Framegrabber und eine Digital-I/O-Karte

PC mit Pentium; MS Windows 95; C++ und x86-Assembler

1997 Design und Einrichtung der Web-Site für die Basler GmbH (heute Basler AG)
2000-01 Machbarkeitsstudie bzgl. extremer Hochgeschwindigkeits-Dekompression

PC mit Pentium III; Windows NT 4.0; Pentium III Assembler

2001-02 White Paper for Intel®: "Optimizing for the Pentium® 4 vs. for the Pentium® III"

PC mit Pentium III und PC mit Pentium 4; Windows XP; Pentium III + 4 Assembler

2004 Weiterentwicklung von Bildverarbeitungssoftware

Industrie-PC mit Pentium III; Windows NT 4.0; C++ und Pentium III Assembler

2005-06 Anpassung des BIOS auf die Board-Konfiguration, Behebung diverser Fehler des BIOS (BIOS-Entwicklung, BIOS-Engineering)

Compact-PCI Board mit Pentium M; Phoenix BIOS; Pentium M Assembler

2007-08 Entwicklung der kompletten Software (Systemsoftware und Algorithmik-Software) eines neuen Sensor-Systems

Texas Instrument (TI) DSP TMS320F2812, TMS320F28335; Kein Betriebssystem; C++ + Assembler

Zum Seitenanfang zurück

 

Erfahrung

Die folgende Tabelle gibt einen Überblick über die wichtigsten Erfahrungen.

Thema Seit Erfahrung
High Level Programmiersprachen

BASIC

1983 Sehr umfassende(s) Erfahrung und Wissen

Pascal

1984 Umfassende(s) Erfahrung und Wissen

C

1985 Sehr umfassende(s) Erfahrung und Wissen

Fortran

1986 Gute Erfahrung

C++

1988 Sehr umfassende(s) Erfahrung und Wissen

HTML/CSS

1997 Signifikante Erfahrung

JavaScript

1997 Gute Erfahrung
 
CPUs / Koresondierende Assembler Sprachen
Z80/Z180 1984 Sehr umfassende Erfahrung
8086 / 80286/80287 / 80386 / i486 / Pentium / Pentium MMX / Pentium II / Pentium III / Pentium 4 / Pentium M / Core 2 1984 Sehr umfassende Erfahrung; inkl. MMX, SSE, SSE2, SSE3
6502 1985 Signifikante Erfahrung
68000 1990 Umfassende Erfahrung
TI TMS34010 1992 Umfassende Erfahrung
Texas Instruments (TI) TMS320F2812, TMS320F28835 2007 Umfassende Erfahrung
Diverse DSPs / CPUs 1982 Signifikantes theoretisches Wissen; sehr guter Überblick über viele Architekturen und spezifische Produkte (z.B. Alpha, ARM, PowerPC, MIPS, TI DSPs, diverse Mikrokontroller)
 
Betriebssysteme und Echtzeit-Kernel
CP/M 1984 Umfassende(s) Erfahrung und Wissen
MS-DOS 1984 Umfassende(s) Erfahrung und Wissen
Apple II 1985 Umfassende Erfahrung
Macintosh 1988 Mittlere Erfahrung
MS Windows 3.1 / 9x / NT / 2000 1990 Extensive Erfahrung; bei Windows 95/98 Device Driver (VxD) Erfahrung
RTKernel Real-Time Kernel 1992 Umfassende(s) Erfahrung und Wissen
Own Real-Time Kernel 1994 Sehr umfassende(s) Erfahrung und Wissen
QNX (Unix-artiges Echtzeit-Betriebssystem) 1996 Etwas Erfahrung
QNX Neutrino (Unix-artiges Echtzeit-Betriebssystem) 1996 Mittlere Erfahrung; Device Driver Programmier-Erfahrung
Linux 2001 Etwas Erfahrung
 
BIOS
Phoenix BIOS 2005 Mittlere Erfahrung: Anpassung eines BIOS auf ein Board
 
Software Tools (ältere Tools (z.B. Borland C/C++) nicht gelistet)
MS C/C++ Compilers / Visual Studio / C/C++ 1984 Sehr umfassende Erfahrung
MS Assembler 1984 Sehr umfassende Erfahrung
Intel C/C++ Compiler 1999 Signifikante Erfahrung
Intel VTune Analyzer 1999 Signifikante Erfahrung
GCC etc. (GNU C/C++ Compiler) 2001 Etwas Erfahrung
Texas Instrument (TI) Code Composer Studio 2007 Umfassende Erfahrung
 
Standard-Software (ältere Software (z.B. WordStar) nicht gelistet)
MS Office 1990 Umfassende Erfahrung
MS FrontPage 1997 Signifikante Erfahrung
SAP R/3 2000 Gute Erfahrung
 

Hardware

Z80 basierte Rechner 1983 Sharp + Schneider; sehr umfassende Erfahrung; umfassende Device Driver Entwicklungs-Erfahrung
PCs 1984 Diverse; Desktop + Industriell; sehr umfassende Erfahrung
Apple II 1985 Signifikante Erfahrung
Apple Macintosh 1988 Wenig Erfahrung
Z180 basierte Einplatinenrechner 1989 Umfassende Erfahrung; Mitarbeit bei Produktspezifikation; umfassende Device Driver Entwicklungs-Erfahrung
RS232 1989 Umfassende Erfahrung; umfassende Device Driver Entwicklungs-Erfahrung
Framegrabber- Karten 1989 Diverse Karten; Mitarbeit bei der Spezifikation; umfassende low-level Programmierung / Device Driver Entwicklungs-Erfahrung
Digital-I/O-Karten (Industriell) 1989 Diverse Karten; Mitarbeit bei der Spezifikation; umfassende low-level Programmierung / Device Driver Entwicklungs-Erfahrung
SPS 1989 Bildverarbeitungssysteme mit diversen SPS-Systemen verbunden (Digital oder RS232)
Kameras 1989 Sehr umfassende Erfahrung mit industriellen CCD Kameras (S/W und Farbe, analog und digital)
CAN Bus Einsteckkarten 1992 Umfassende Erfahrung; Mitarbeit bei der Spezifikation; umfassende low-level Programmierung / Device Driver Entwicklungs-Erfahrung
Fire wire / IEEE 1394 1994 Gute Erfahrung; Mitarbeit bei Produktspezifikationen
Diverse HW 1983 Plotter, Matrix-/Inkjet-/Laserdrucker, HDDs, FDDs, Monitore, LCD Displays, Ethernet Karten / Netzwerke, USB, parallel I/O etc.

Zum Seitenanfang zurück

Plattformen: x86 · Pentium · Pentium MMX · Pentium II · Pentium III · Pentium 4 · Core · Core 2 · Xeon · Itanium · Athlon · DSPs · Embedded CPUs · Windows · Linux · RT-OS

Besonders profitierende Applikationsgebiete: Bildverarbeitung · Signalverarbeitung · High Performance Computing / Number Crunching · Simulationen · Kompression · Spiele · 3D Software · Gerätetreiber · Multi-Prozessor Systeme · Multi-Computer Systeme / Cluster · Embedded Geräte · Echtzeit-Systeme · Interaktive Systeme · Und viele mehr...