17 mei 2011

Daar gaan we weer. Week 13 nog 4 weken voor ik mijn stageverslag moet inleveren. Of in ieder geval zoals de handleiding het meld dat ik die moet inleveren.
Mijn stagebegeleider had gemeld dat er waarschijnlijk uitstel van inleveren is omdat ik in China zit en de vraag of ik hem dan ook digitaal mag inleveren.
Het enige wat ik hoef te doen is een mailtje naar school te sturen. Dit gesprek was 3 weken terug in week 10. Het mailtje is die zelfde week ook verstuurt echter we zijn weer terug bij af met reageren van school.
Ze reageren namelijk niet. Nu is het niet zo’n probleem dit keer ik kan me ook aan de handleiding houden en het is even wat gehannes om dan een papieren versie op mijn school te krijgen maar heb genoeg familieleden en kennissen die dit ook voor mij kunnen.
Een ander gedeelte is dat de inlever datum bekend zou worden gemaakt op blackboard van onze school. Nu heeft mijn internet hier de laatste tijd wat problemen met adressen buiten China. Maar blijkbaar werkt vandaag meer dan zins afgelopen donderdag tot gisteren. En blackboard meld nog steeds alleen de oude groep mensen.

Maar goed terug naar mijn stage zelf. Het omzetten van de DeSTIN naar een DeSTIN op CUDA versie is op vollen gang. De gewone versie heeft allemaal trucjes die ervoor zorgen dat er slim met data wordt omgegaan. Echter met CUDA is het zo dat het de data graag in één block wilt hebben zodat je vervolgens het weer in kleine stukje op de videokaart kan verdelen. Dus het verdeel trucje word dan nog wel steeds toegepast maar in plaats voor ieder klein stukje het achter elkaar te doen doe je het verdelen van de data in één keer. Waarna je het ook in één keer van verwerken en het resultaat weer opslaan op de videokaart.

Met deze stap ben ik dus bezig en wanneer de eerste laag klaar is dan is de data ook klaar voor de 2de laag en als die klaar is voor weer de volgende. In de tussentijd dat de data omhoog gaat door de lagen hoeft de data niet terug naar de host pas als het de hoogste laag bereikt heeft willen we alle lagen in één keer terug dit zal aardig wat data zijn en hoop dan ook dat ik niet tegen de bottleneck van de overdracht aanloop. Een andere manier is alleen de belangrijkste informatie terug door te geven maar dat zal wat lastiger met het samenvoegen worden. Aangezien de indexen verandert zijn op dat moment maar tot dat punt ben ik nu nog niet.

Oke wanneer de lagen dus van data voorzien zijn zou het clusteren mogelijk moeten zijn. In dit geval is het een versimpelde versie van K-means clusteren (voor die geïnteresseerd even op Wiki zoeken) waarbij het updaten van de centroids iets anders gebeurt. In plaats van alle centroids te updaten word alleen de dichtstbijzijnde geüpdate. Dit word eigenlijk ook wel online clusteren genoemd maar daar is weinig informatie over te vinden alleen wat papers en een YouTube filmpje.

Tot zover mijn vooruitgang van mijn stage: Mijn laptop klaag nog niet blijkbaar is het nog niet te warm of doet de GPU nog te weinig.

(meer…)

3 mei 2011

Daar zijn we weer met een blog/verhaal. Om van mijn vorige tijd gebrek te leren zal ik niet 2 weken wachten met het posten van de volgende blog.

Het project zoals gebruikelijk geef ik een korte inlichting wat er gaande is met mijn stage hier in Xiamen University. Omdat ik aan een onderzoek en ontwikkeling project werk zit ik meer te lezen en uit te dokteren dan dat ik werkelijk aan het schrijven ben. Wat in HBO termen juist heel goed is aangezien je eerst moet denken voor je iets gaat doen.

Een kleine onderschatting daar gelaten maar wat ik op school wel geleerd heb dat het zo lang kan duren is dat ik nu al op de helft zit en ik in week 12 pas echt begin met ontwikkelen. Wat heb ik ondertussen geleerd van het programma DeSTIN:

Om hierin heel simpel te zijn onderzoekers besteden meer tijd aan het bedenken dan aan het ontwikkelen maar dat dit ten goede komt van je code niet echt. Nu is het misschien wel eens handig als onderzoekers in Xiamen ook leren wat source control is. Dit vrij simpele techniek wat je bij het software ontwikkelen ondersteunt als in de form van back-up en deel mogelijkheid.

Kleine uitleg wat source control is. Als je in je eentje of meer werkt is het handig om een kopie van je werk bij te houden. Nu kan je dit doen door je map telkens te kopiëren of om regels uitgecommentarieerd. Ook is er de mogelijkheid om source control aan te zetten dit meestal op een server of tegenwoordig ook een website (is ook een server) beschikbaar is. Gratis!
Wanneer je dan wijzigingen in je programmatuur maakt of een ander dan kan je zien op welk moment wie welke wijziging heeft gemaakt. In je eentje zou je niet een server nodig hebben je kan het dan lokaal bijhouden let dan wel op dat je 2 verschillende locatie gebruikt natuurlijk dat wanneer locatie 1 stuk gaat je de ander nog hebt.

Maar goed terug naar DeSTIN deze heeft de versie van source control dat code is uitgecommentarieerd met als vleugje beslissing structuren om code zodat die ooit nog terug kan switchen. Ondertussen is het andere deel van de code al zoveel beter dat die niet meer terug kan maar goed.

Wat nog meer ow ja een hele grote functie of even in andere taal een hele grote opdrachten die er uit ziet als spaghetti. Dus ben de afgelopen paar weken bezig met het destilleren van DeSTIN en tot nu toe levert dat een snelheidswinst alleen al omdat er stukken code niet meer op gecheckt hoeft te worden en de andere bijkomstigheid is hele stukken code heb ik nu gedocumenteerd omdat ik er maar heb neergezet wat het doet op die plek.

Mijn opdrachtgever vind dat ik niet zoveel hoef te schrijven over het project mijn school echter vind dat ik een product verslag van 30 a 50 pagina’s moet maken voor mijn opdrachtgever. Ow wat zal die blij zijn. Daarnaast moet er ook nog een stageverslag van ongeveer 50 pagina mogen er ook meer zijn. Welke wel speciaal voor school is. Wat mijn opdrachtgever eigenlijk duidelijk maakt is dat er dus +/- 100 pagina’s over dit project geschreven moet worden niet voor hem maar voor school. Maar goed het moet en blijkbaar zullen de andere studenten in Xiamen daar ook profijt van kunnen maken. In plaats van 6 pagina tellende papers de telkens naar elkaar door verwijzen.

(meer…)