# HG changeset patch # User schnalke@localhost.localdomain # Date 1210140925 -7200 # Node ID de3d14ca2b7ac30a36650d1608be80994037ad88 inital commit diff -r 000000000000 -r de3d14ca2b7a .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Wed May 07 08:15:25 2008 +0200 @@ -0,0 +1,10 @@ +syntax: glob +*~ +.*.swp + +*.aux +*.log +*.toc + +old +*.pdf diff -r 000000000000 -r de3d14ca2b7a Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Wed May 07 08:15:25 2008 +0200 @@ -0,0 +1,28 @@ +# Makefile fuer den PS-Bericht + +SRC = ps-bericht.tex +DEP = *.tex +OBJ = ${SRC:.tex=.pdf} + +all: xpdf + +#.tex.pdf: +# @echo pdflatex $< +# @pdflatex $< + +${OBJ}: ${SRC} $(DEP) + @echo pdflatex $@ + @pdflatex ${SRC} + @pdflatex ${SRC} + +xpdf: ${OBJ} + @echo evince $@ + @evince ${OBJ} & + +clean: + rm -f *.aux *.toc + +distclean: clean + rm -f $(OBJ) + +.PHONY: all xpdf diff -r 000000000000 -r de3d14ca2b7a das-projekt.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/das-projekt.tex Wed May 07 08:15:25 2008 +0200 @@ -0,0 +1,61 @@ +\chapter{Das Projekt} + +Das Projekt an dem ich gearbeitet habe, trägt die Bezeichnung ``Real Time Showcase mit dem Cell/B.E. Mikroprozessor: Implementierung einer optisch gesteuerten Produktionseinheit''. + +Es war eines der \emph{IBM Speedteams} in diesem Jahr. Die offizielle Beschreibung dafür lautete folgendermaßen: +\begin{quotation} +Der revolutionäre Superchip Cell wurde in Kooperation von Sony, Toshiba und IBM für Sonys Playstation 3 entwickelt. Er wird derzeit in der Playstation 3 und dem IBM Blade Server QS21 eingesetzt. Aufgrund seiner herausragenden Architektur eignet sich der Cell Chip in besonderer Art und Weise für Echtzeit-Datenverarbeitung. Ziel dieses Projekts ist es einen Showcase zu implementieren, der die Leistungsfähigkeit des Cell/B.E.s für Echtzeit-Aufgaben unter Beweis stellt. Hierbei werden vier Roboterarme von zwei Kameras gesteuert. Das Speedteam wird die Ablaufsteuerung der Roboterarme implementieren, damit diese gemeinsam eine Aufgabe erledigen können. Die Kameras werden dabei die Roboterarme kontrollieren. Die Ansteuerung der Roboterarme ist bereits vorhanden, so dass sich dieses Projekt voll auf die Cell/B.E. Programmierung, die optische Datenverarbeitung mit OpenCV und die Algorithmen zur Ablaufsteuerung konzentriert. Als Student haben Sie die Möglichkeit - im wahrsten Sinn des Wortes - Ihre Programmierung anzufassen. Sie Programmieren auf dem interessantesten Prozessor der derzeit auf dem Markt ist und zudem gewinnen Sie Einblick in die Echtzeit-Datenverarbeitung. +\end{quotation} + + +Begonnen wurde das Projekt im April 2007. Seitdem arbeiten Studenten daran. + +Der erste Student hatte die Grundlagen gelegt indem er die low-level Kommunikation mit dem Roboter, die Inverse Kinematik\footnote{Berechnung der Gelenkwinkel zum Erreichen eines bestimmten Punktes} und ein erstes Framework für die Programmierung des Cell-Prozessors erstellt hat. Zum Einsatz kamen Lynx6-Roboterarme, die im Abschnitt \ref{robotarme} noch genauer beschrieben werden. + +Sein Nachfolger arbeitete während seiner Masterarbeit vor allem an den mathematischen Berechnungen der Inversen Kinematik in allgemeiner Form. Seine Arbeit bezieht sich auf einen Industrie Roboter mit sechs Freiheitsgraden, der leider nicht beschafft werden konnte. Somit simulierte er seine Berechnungen nur. + +Student Nummer drei, und damit mein Vorgänger und Kollege, denn er verweilte ein ganzes Jahr im Unternehmen, programmierte während seiner Zeit ein umfassendes Framework um die ganzen low-level Angelegenheiten zu abstrahieren. Dies erleichterte die Programmierung ungemein. Zudem band er \emph{OpenCV} zur visuellen Erkennung mit ein. + +Ich war nun der vierte Student der am Projekt arbeitete. Einen Monat nach mit kam noch eine weitere Studentin hinzu. Somit waren wir in der Zeit zwischen April und FIXME zu Dritt. + + +\section{Zielsetzung} + +% FIXME: refactor that text +Momentan werden in der Industrie Roboter über DSPs angesteuert, welche nur schwierig programmiert werden können, da spezielle Kenntnisse nötig sind. Grundgedanke dieses Projektes ist es, dieses Manko durch den Einsatz der SPUs des Cell- Prozessors aufzuheben. Da die Cell-Architektur die Programmiersprache C und Linux unterstützt, können so auf einfachem Wege schnell Robotersteuerungen entwickelt werden ohne spezielle DSP und FPGA Entwicklung zu betreiben. Dies würde den Zeitfaktor neuer Entwicklung dramatisch senken. +Ein weiterer Aspekt der Cell-Architektur ist die extrem hohe Skalierbarkeit und die äußerst geringe Latenz dank mehrerer Prozessorelemente auf einem Chip. Da eine SPU das vielfache eines DSPs leistet und bis zu acht SPUs auf einem Cell-Core Platz finden ist es denkbar komplette Fertigungsstraßen durch dieses System zu ersetzen. +Kombiniert man nun beide Welten, DSP und Standard Computer, erhält man DSP-ähnliche Applikationen unter einem Linux Betriebssystem gekoppelt mit einer enormen Rechenleistung der nächsten Generation. + + +\section{Verwendete Technologie} + +Unser Entwicklungssystem war ein angepasster \emph{QS21}\footnote{FIXME} % FIXME +Cell/B.E. Blade-Server. An diesem waren vier Lynx6-Roboterarme von Lynxmotion\footnote{http://lynxmotion.com} angeschlossen, und außer dem noch eine \emph{myBlueFOX} Kamera von \emph{Matrix Vision}\footnote{http://matrix-vision.com}. Als Betriebsystem lief ein Fedora 7. + + +\subsection{Der Cell-Prozessor} + +Ausgeschrieben \emph{Cell Broadband Engine Architecture} genannt, werde ich hier meist die Kurzformen \emph{Cell/B.E.} oder einfach nur \emph{Cell-Prozessor} verwenden. + +Dieser Chip wurde, zwischen 2001 und 2005, in einer Kooperation von Sony, Toshiba und IBM entwickelt. Der Hauptteil der Entwicklungsarbeit wurde dabei von \ibm\ übernommen. + +Bei der Cell/B.E. handelt es sich um eine heterogene Multicore-Architektur. Das bedeutet, dass der Prozessor aus mehreren Kernen besteht, die (im Gegensatz zu den x86-Multicores aber) aus verschiedenen Kerntypen bestehen. Der Cell verfügt über einen PowerPC-Kern (PPE/PPU) und acht sogenannten Synergistic Prozessor Elemente (SPE/SPU). Die PPE ist ein vollwertiger 64-bit PowerPC Kern. Er kann in herkömmlicher Weise verwendet werden, so kann darauf zum Beispiel ein Betriebsystem oder eine beliebige Anwendung laufen. Die SPEs dagegen sind für große Rechenleistung optimiert, Datentransfer-Operationen sind eher langsam. + +Üblicherweise übernimmt die PPE die Kontrolle und verteilt die Arbeit auf die einzelnen SPEs die dann unabhängig von einander arbeiten. Die Ergebnisse fließen dann an die PPE zurück. + + + + + + + +\subsection{Die Roboterarme} \label{robotarme} + + + +\section{Ausgangssituation} + + +\section{Mein Projektteil} + + diff -r 000000000000 -r de3d14ca2b7a das-unternehmen.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/das-unternehmen.tex Wed May 07 08:15:25 2008 +0200 @@ -0,0 +1,102 @@ +\chapter{Das Unternehmen} + +Die drei Buchstaben ``\ibm'' und das Logo (Abbildung \ref{fig:ibm-logo}) mit den den blauen Streifen sind fast jedem ein Begriff. Dass das Unternehmen ``mit Computern zu tun'' hat ist bekannt, was genau die \ibm\ jedoch macht, ist der Mehrheit jedoch nicht klar. + +In den folgenden Seiten möchte ich dieses Unternehmen, bei dem ich nun ein halbes Jahr gearbeitet habe, vorstellen. % TODO: Satz weg? + +\begin{figure}[hb] + \centering + \includegraphics[width=5cm]{pics/IBM_logo.png} + \caption{Das seit 1972 verwendete Unternehmens-Logo.} + \label{fig:ibm-logo} +\end{figure} + +\section{Geschichte} % weg? + +Das Unternehmen wurde 1896 von Herman Hollerith, damals noch unter dem Namen \emph{Tabulating Machine Company}, in Broome County, New York gegründet. Zu dieser Zeit wurden Maschinen zur Auslesen von Lochkarten produziert. + +Knapp dreißig Jahr später, 1924, war die Produktpalette gewachsen und es wurden die verschiedensten Geräte für den Umgang mit Lochkarten produziert. Infolge dessen änderte das Unternehmen seinen Namen in \emph{International Business Machines}. + +Als die ersten Computer auftauchten war \ibm\ am forderster Front mit dabei und hatte schnell eine dominierende Stellung im Bereich der Mainframes\footnote{Großrechner --- komplexe Computersysteme mit sehr großer Robustheit, Verlässlichkeit und Leistung} inne. + +Ab den 80er Jahren wandelte sich der Markt und das Unternehmen hatte mit dem \emph{IBM-PC} eine Antwort auf den \emph{Apple II} der sehr erfolgreich war. Ein Jahrzehnt später verlor die \ibm\ dann aber ihre Vorherrschaft auf dem Gebiet der Personal Computer an die Konkurrenz. Im Jahr 2005 verkaufte das Unternehmen die PC-Sparte dann komplett an den Chinesischen Hersteller \emph{Lenovo}. + +Heutzutage liegt die Priorität des Unternehmens stärker auf Dienstleistungen wie Beratung. + + + +\section{Unternehmensgrundsätze} + +Schon 1935 stellte der damalige Direktor Thomas J. Watson die Position des Unternehmens bezüglich der Gleichberechtigung von Frauen und Männern klar: ``Männer und Frauen werden für gleiches Geld die gleiche Arbeit verrichten. Sie werden gleich behandelt, die gleiche Verantwortung übernehmen und die gleichen Entwicklungschancen erhalten.''. 1953 folgte von höchster Stelle der Grundsatz, dass Mitarbeiter allein nach ihren Fähigkeiten beurteilt werden sollen, ``ohne Rücksicht auf Rasse, Hautfarbe oder Glaubensbekenntnisse''. Sexuelle Orientierung wurde 1984 hinzugefügt. + +Auf Grund seiner innovativen Unternehmenskultur kann \ibm\ ein gutes Arbeitsklima und eine sehr geringe Kündigungszahl wegen Unzufriedenheit aufweisen. + +Um die Grundsätze der \ibm\ zu formulieren wurde ein Aufruf für Vorschläge an alle Mitarbieter des Unternehmens gemacht. Die Einsendungen wurden gesammelt, zusammengefasst und destilliert. Das Ergebnis sind folgende drei Sätze: + +\begin{itemize} + \item Engagement für den Erfolg jedes Kunden + \item Innovationen, die etwas bedeuten – für unser Unternehmen und für die Welt + \item Vertrauen und persönliche Verantwortung in allen Beziehungen +\end{itemize} + +Diese Gedanken sollen die Basis aller Tätigkeit im Unternehmen sein. + + + + +\section{Unternehmensbereiche} + +\paragraph{Global Business Services} Unternehmensberatung. Umsatzmäßig der größte Bereich. + +\paragraph{Global Services} Outsourcing und e-Business Anbieter. Der zweite große Bereich, in dem mehr als die Hälfte der Mitarbieter beschäftigt sind. + +\paragraph{Systems and Technology Group} Entwicklung und Vertrieb von IT-Infrastruktur. Darunter fallen die Serversysteme (System i, System x, System p, System z), die Storagesysteme (TotalStorage) und die Drucksysteme. + +\paragraph{Software Group} Softwarelösungen. Aufgeteilt in \emph{Information Management} (DB2), \emph{Lotus} (Office und Groupware), \emph{Rational} (Entwicklung), \emph{Tivoli} (Service Management) und \emph{Websphere} (Anwendungsintegration und -infrastruktur). + +\paragraph{Global Finance} Weltweit größter IT-Finanzdienstleister. Dazu gehört Leasing von Soft- und Hardware. + +% TODO: Kreisdiagramme für MA-Anzahl, Umsatz und Gewinn der Geschäftsbereiche + + + + +\section{IBM International} + +\ibm\ ist weltweit in über 170 Ländern vertreten. Der Stammsitz des Unternehmens ist Armonk, New York in den USA. + +Insgesamt werden über 380 Tausend Mitarbeiter beschäftigt. Damit ist das Unternehmen das größte IT-Unternehmen weltweit. + +Der Umsatz liegt knapp unter 100 Milliarden US Dollar, wovon der Gewinn etwa ein Zehntel beträgt. + + + +\section{IBM Deutschland} + +In Deutschland war die \ibm\ ab 1910 unter dem Namen \emph{DEHOMAG} vertreten. Seit 1949 verkehrt die Gesellschaft unter den bekannten drei Buchstaben. + +Die \emph{IBM Deutschland GmbH} beschäftigt etwa 22.000 Angestellte in rund 40 Standorten; darunter auch der Entwicklungsstandort Böblingen. + +Die Geschäftsführung setzt sich seit Mai 2007 aus Martin Jetter (Vorsitzender), Christian Diedrich (Finanzen), Christoph Grandpierre (Personal), Matthias Hartmann (Global Business Services), Thomas Fell (Mittelstand) und Michael Diemer (Global Technology Services) zusammen. Den Vorsitz des Aufsichtsrat führt Hans Ulrich Maerki. + + + +\section{Labor Böblingen} + +Das Forschungs- und Entwicklungslabor in Böblingen ist eines von 30 IBM-Entwicklungszentren weltweit, und außerhalb Nordamerikas eines der größten. + +Gegründet wurde die \emph{IBM Deutschland Entwicklung GmbH}, die das Labor betreibt, 1953. Seitdem ist der Standort Böblingen ein wichtiges Standbein des Entwicklungsnetzwerkes der \ibm. + +Das Labor befasst sich sowohl mit Software- als auch mit Hardware-Entwicklung. Bei der Software deckt es, bis auf \emph{Rational}, alle IBM-Softwarebereiche ab. Die Hardwareentwicklung befasst sich unter anderem mit dem \emph{System z}\footnote{Nachfolger des \emph{S/390} und das Flaggschiff der IBM-Hardware}, und war maßgeblich an der Entwicklung des \emph{Cell-Prozessors}\footnote{Eine kooperative Entwicklung von Sony, Toshiba und IBM} beteiligt. + + + + +\section{Die Abteilung} + +Innerhalb des Labors war ich der Abteilung \emph{Open Systems Design and Development} (OSDD) zugehörig. + +Die Mission der Abteilung ist das Design, die Entwicklung und die Integration von \emph{Cell}- und \emph{PowerPC}-basierten Blades\footnote{Besondere flache Bauform für Server} für die \emph{IBM BladeCenter} Umgebung. + +Die Abteilung ist in zwei Fokusteams aufgeteilt. Zum einen das \emph{Open System Development} Team mit den Aufgabenbereichen System Design und HW- Architektur, Card und Board Design und Development von Host- und Service Prozessor Firmware. Und zum anderen das \emph{Open System Integration} Team mit den Aufgabenbereichen Hardware/Firmware Integration und Bringup, Building Block Verification und Test und Treiber Integration und Last Level Support. + diff -r 000000000000 -r de3d14ca2b7a fazit.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fazit.tex Wed May 07 08:15:25 2008 +0200 @@ -0,0 +1,30 @@ +\chapter{Fazit} + + Ich habe in meiner Ausarbeitung bisher ganz bewusst auf Quellcode verzichtet, denn ich wollte Design Patterns einmal von der anderen Seite her erklären. Ich wollte vermitteln weshalb das Observer-Pattern so aufgebaut ist wie es ist. Ich wollte Verständnis für Design Patterns entwickeln und zeigen, dass sie absolut logische Lösungen sind. + + \paragraph{In drei Sätzen:} + \begin{itemize} + \item Menschen denken basierend auf der Realität + \item deshalb Design Patterns auf die Realität zurückführen + \item Patterns anwenden weil man es in der Realität auch so machen würde + \end{itemize} + + + Design Patterns sind dabei Modelle wie Quellcode aufgebaut werden sollte. Sie sind kein Code --- sie beschreiben nur wie Code sein sollte. Das ist auch ganz gut so, denn: + + \begin{quote} + \textbf{Implementierungen sind Schall und Rauch,\\ + Konzepte dagegen bleiben bestehen! } + \end{quote} + + Design Patterns sind Konzepte --- Programmiersprachen kommen und gehen, Design Patterns überleben. Wenn man also in die Zukunft investieren möchte, dann sollte man sich Design Patterns aneignen, denn diese Investition ist risikofrei und zudem hoch rentabel! + + \vspace{10ex} + + \textit{Ich wollte euch die Natürlichkeit von Patterns nahebringen und euch dafür begeistern.\\ Ich hoffe das ist mir gelungen :-) } + + \begin{flushright} + markus schnalke + \end{flushright} + + diff -r 000000000000 -r de3d14ca2b7a pics/IBM_logo.png Binary file pics/IBM_logo.png has changed diff -r 000000000000 -r de3d14ca2b7a ps-bericht.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ps-bericht.tex Wed May 07 08:15:25 2008 +0200 @@ -0,0 +1,55 @@ +% @file +% @brief Praxissemesterbericht IBM +% @author markus schnalke +% @since 2008-05-05 + + +\documentclass[a4paper]{scrreprt} + + \usepackage[utf8]{inputenc} + \usepackage{ngerman} + \usepackage{graphicx} + \usepackage{listings} + \usepackage[automark]{scrpage2} + + \setkomafont{sectioning}{\normalfont\normalcolor\bfseries} + \setlength{\parindent}{0em} + \setlength{\parskip}{1.0ex plus 1.0ex minus 0.5ex} + \pagestyle{scrheadings} + \setcounter{tocdepth}{3} + + \newcommand{\ibm}{\emph{IBM}} + +\begin{document} + + + +\include{titel} + +\tableofcontents + + +\include{das-unternehmen} + +\include{das-projekt} + +\include{taetigkeit} + +\include{fazit} + + + + + + + +\appendix + +\input{software-used} + + + + + + +\end{document} diff -r 000000000000 -r de3d14ca2b7a software-used.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/software-used.tex Wed May 07 08:15:25 2008 +0200 @@ -0,0 +1,10 @@ +\chapter{Verwendete Software} +Zum Erstellen dieses Berichts habe ich folgende Software verwendet. + \begin{itemize} + \item Debian GNU/Linux \& RedHat Enterprise Linux 5 + \item \texttt{pdflatex} + \item Vim + \item qiv und ImageMagick + \item Mercurial + \end{itemize} + diff -r 000000000000 -r de3d14ca2b7a taetigkeit.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taetigkeit.tex Wed May 07 08:15:25 2008 +0200 @@ -0,0 +1,13 @@ +\chapter{Meine Tätigkeit} + + +\section{Kollisionskontrolle} + + +\section{Visualisierung} + + +\section{Intelligenz-Modul} + + + diff -r 000000000000 -r de3d14ca2b7a titel.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/titel.tex Wed May 07 08:15:25 2008 +0200 @@ -0,0 +1,29 @@ +\begin{titlepage} + \title{2. Praxissemester bei IBM} + \author{markus schnalke} + \date{2008-05-05} + + + \thispagestyle{empty} + + + \begin{flushright} + + \rule[8cm]{0cm}{0cm} + {\Huge Mein Praxissemester bei der\\ \textbf{IBM Deutschland\\ Entwicklung GmbH}} + + \rule[2cm]{0cm}{0cm} + \textsc{Markus Schnalke\\MatNr: 039131} + + \end{flushright} + + + { \huge IBM Confidential! } + + \rule[5cm]{0cm}{0cm} + + \textit{Dies ist der Bericht zu meinem zweiten Praxissemester im Studiengang Wirtschaftsinformatik an der Hochschule Ulm. Ich absolvierte dieses Praktikum bei der \textbf{IBM Deutschland Entwicklung GmbH} in Böblingen.} + + {\tiny Dieses Dokument untersteht einer Creative Commons-Lizenz (Namensnennung - NichtKommerziell - KeineBearbeitung 2.5). } + +\end{titlepage}