Bakgrund. Inför projektet. Mätningar av existerande läge
|
|
- Mikael Andreasson
- för 6 år sedan
- Visningar:
Transkript
1 Slutrapport, Projekt Hiper. Oktober 2006 Bakgrund libcurl är ett utvecklingsbibliotek för filöverföringar som stöder HTTP, HTTPS, FTP, FTPS, FILE, TELNET, DICT m.fl. Följande rapport är skriven utan att alltför mycket förkunskaper om libcurl måste finnas hos läsaren, men då libcurl är ett väletablerat och gammalt projekt (startades 1998) så kan jag inte beskriva samtliga detaljer här. Grundfakta kan inhämtas från libcurls webbsajt: Inför projektet Den 24:e oktober 2005 tog Daniel emot ett diplom och det officiella beskedet om det beviljade ekonomiska stödet från II Stiftelsen, under Internetdagarna Projektet fick namnet Hiper av Daniel, som en förkortning av High Performance projektet syftar till att optimera libcurls prestanda vid väldigt många samtidiga överföringar. I projektet lade Daniel till en punkt (nr 3) som inte fanns med i hans ansökan, så att de blev tre till antalet: 1. nytt API för att undvika select() relaterade problem 2. support för HTTP pipelining 3. ett zero copy interface Redan innan detta bidrag beviljades hade projektet efter många och långa diskussioner en ide om hur API:t skulle utformas för att bli så bra som möjligt, men under projektets gång kom det ändå att omformas och justeras på flera sätt flera gånger. Min plan fick en extrapunkt (zero copy interface) i ett infall av ambition som jag hade precis i början, men jag gjorde under projektets tid bedömningen att detta inte är en speciellt viktig förändring eller någon som efterfrågas på något sätt, så för att spara tid och verkligen komma i mål snyggt så strök jag denna punkt igen och lämnar den till att implementeras i framtiden istället. Mätningar av existerande läge (De mätningar och tider som refereras till i följande rapport är gjorda på en 2083 Mhz AMD Athlon XP körandes Linux 2.6. Testerna har gjorts utan att swap använts, allting har fått plats i RAM.) Projektet började med ganska detaljerade mätningar på det existerande gränssnittet och exakt hur lång 1 av 5
2 (extra ) tid det tar pga den select() centrerade designen. Problemen med select() är i korthet: 1. stöder endast ett (compile time) begränsat antal sockets 2. när man får veta att en eller flera sockets har trafik, kan man inte enkelt får reda på vilken det är utan man måste iterera över allihopa för att ta redan på vilken eller vilka det var 3. långsamt ju fler sockets man lägger till ju längre tar varje anrop till select() 4. det är också ett problem i sig att vi är låsta till att applikationen måste använda select() eftersom det inte passar alla Det existerande gränssnittet krävde att applikationen först gjorde ett anrop till curl_multi_fdset() för att sedan kunna göra select() för att vänta på trafik. När trafik noterats, eller timeout inträffat, skall curl_multi_perform() anropas. Då går libcurl igenom samtliga koppel och gör vad som skall göras, vilket inkluderar läsning och skrivning av de koppel som är redo. Mätningarna visade att vid 9000 koppel utan trafik och en med konstant trafik, så tog enbart select() 8ms per anrop och curl_multi_perform() 32 ms (libcurl var då patchad att endast läsa max 1 byte per anrop). Vi såg också att tiden dessa anrop tar är direkt proportionell med antalet sockets/koppel Illustration 1: tidsåtgång per funktionsanrop koppel skulle alltså ta totalt 89 ms per anrop! Det gör förstås att vi maximalt gör recv() anrop med en frekvens på cirka 11Hz, vilket vid full datahastighet på det enda kopplet med trafik (och 16KB läsbuffrar som libcurl använder) endast ger 180KB/sekund. Design av curl_multi_socket() För att undvika att select() måste användas så måste libcurl exponera exakt de sockets som den använder, och huruvida applikationen ska vänta på att socket blir skrivbar, läsbar eller både och. Vi vill heller inte att applikationen ska behöva plocka fram alla sockets i stil med curl_multi_fdset() då det ju också blir en massa jobb att utföra repetetivt. Slutsatsen blev att den nya funktionaliteten vi gör, måste informera applikationen om socket förändringar 2 av 5
3 med hjälp av en callback. Då endast förändringar rapporteras kan applikationen hela tiden hålla kvar information de sockets den redan fått info om, och se till att vänta på trafik på dem enligt samma info. Vi måste också tillåta att applikationen berättar för libcurl exakt vilket socket som den har noterat trafik på, och då skall libcurl kunna använda den direkt utan att behöva leta igenom tusentals andra. Alternativ till select() Vi har svängt in på och fokuserat ganska mycket på att se till att vi har ett API som är lätt att använda tillsammans med libevent 1. Men genom att göra så, gör vi det också det enkelt att använda andra eventbaserade system i samma anda. Helt enkelt system som kan vänta på trafik på en eller flera sockets och berätta exakt vilken som hade trafik (typ kqueue, epoll och liknande). På libevents webbsajt ser vi en graf över hur libevent skalar i jämförelse med select. Det framgå r inte exakt på vilken typ av maskin som tiderna är uppmätta, men det finns anledningar att tro att det är en långsammare maskin än den jag använt. Siffrorna där visar en konstant användning av 50 mikrosekunder för det enda aktiva kopplet, hur många samtidiga tysta koppel man än lagt till. Jag beslöt mig för att inte försöka upprepa libevents mätningar utan tror på dem, mest för att jag inte är insatt i dess interna funktionalitet och det därmed är lite svårt att göra bra Illustration 2: prestanda graf från libevents webbsajt mätningar. Test av curl_multi_socket() Då vi räknade med att undvika select() (genom t.ex libevent), byggde jag en applikation som trots allt var baserad på select() men endast för utvecklingsfasen. Sedan såg jag till att mäta tiden curl_multi_socket() tog på sig att hantera det enda koppel som hade trafik. Resultatet var mycket inspirerande: det tog i genomsnitt 7 mikrosekunder (fortfarande patchad att endast läsa en byte). De första testerna var dock fortfarande rätt simpla och implementerade inte hela API:et på rätt sätt. För att det skulle fungera rätt så var jag tvungen att implementera en hash uppslagning för socket => intern struct plus att jag stoppade in en hantering av timeout (med hjälp av splay träd) så att applikationen kan fråga av 5
4 libcurl hur länge den bör vänta som längst innan den anropar libcurl (för intern timeout och omförsökshantering etc). Denna extra hantering, samt att vi är tvungna att kontrollera och hantera eventuella timeouter i varje anrop till curl_multi_socket() lade på några mikro mer anrop. Jämförelse av curl_multi_perform och curl_multi_socket Med ett aktiv koppel och ett stort antal koppel så ligger vi nu nästan konstant på totalt mindre än 60 mikrosekunder (när vi läser en enda byte) per event, tiden växer lite långsamt pga hashtabellsuppslagningen. För koppel var vi alltså fortfarande under 10 mikrosekunder per curl_multi_socket anrop. I ett extremfall med tysta koppel och ett som är aktivt, och räknat på att läsningen av data går lika fort för 16KB som för 1 byte (vilket ju inte är fallet i verkligheten, men skillnaden kan ignoreras för tillfället) så når vi en anropsfrekvens på Hz, vilket motsvarar en datahastighet på 260MB/sekund. Skillnaden i hastighet mellan det gamla gränssnittet och det nya är alltså uppemot faktor 1:1500! HTTP Pipelining När prestandan på socket nivå förbättrats gick jag vidare till nätverks nivån och implementerade stöd för HTTP Pipelining. Pipelining betyder här i korthet att man skickar flera förfrågningar på en gång, utan att invänta svaret, och sedan tar man emot flera svar när de väl kommer. Den stora fördelen kommer förstås när man vill hämta många små filer från servrar med lång fördröjning (latency). HTTP Pipelining introducerades med HTTP 1.1 och skall stödjas av alla HTTP servrar som implementerar 1.1, vilket i dagens läge är i princip alla. För att möjliggöra pipelining fick jag först se till att ett multi handle (dvs det objekt som används när man använder libcurls mult interface, oavsett om man använder det gamla curl_multi_perform eller den nya curl_multi_socket) fick en gemensam koppel cache. Detta för att möjliggöra att man lägger till nya förfrågningar som ska kunna koppla på sig på en redan existerande för att bilda kedjor pipelines. Resultat I och med curl releasen (släppt 30 oktober 2006) är både curl_multi_socket() och Pipelining supportat. Därmed är projekt Hiper i mål! Idag, den 25 november 2006 skickar jag slutrapporten. 4 av 5
5 Användning av tillfördelade medel Daniel har under det gångna året fått totalt SEK, fördelat på tre stycken utbetalningar, från II Stiftelsen för genomförandet av detta projekt. Pengarna har används till att köpa RAM minne till utvecklingsdatorn samt till den allra största delen ersätta arbetstid för att möjliggöra att Daniel arbetat deltid med projekt Hiper under praktiskt taget ett helt år. Tack! Jag hade självklart inte kunnat genomföra detta utan II Stiftelsens generösa gåva. Jag har även haft stor hjälp och input från följande individer: Ravi Pratap, Jamie Lokier, Sun Yi Ming, Jeff Pohlmeyer, Alexander Lazic 5 av 5
1 Kravspecifikation Snake App
Kravspecifikation Snake App - Kravspecifikation Snake App Utskriven/PDF Export: 2011-09-07 Copyright 2011 Sidan 1 av 7 1 Kravspecifikation Snake App 1.1 Vad är Snake App? Vi skall gör ett Snake Spel för
Läs merIntroduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.
Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning
Läs merDiskprestanda Tester
Linnéuniversitetet Projektrapport Grundläggande Operativsystem 1DV415 Diskprestanda Tester Matteus Gilis, Linus Fogelström 9 januari 2014 Sammanfattning Vi ville utföra läs och skrivhastighets tester mellan
Läs merOpponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg
Datavetenskap Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg Oppositionsrapport, C-nivå 2006:12 1 Sammanfattat omdöme av examensarbetet Examensarbetet är intressant eftersom
Läs merPipelining i Intel Pentium II
Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.
Läs merFilöverföring i Windowsmiljö
Linnéuniversitetet Projektrapport Grundläggande Operativsystem 1DV415 Filöverföring i Windowsmiljö Erik Ljungqvist, Viktor Hjertman 10 januari 2014 Sammanfattning I detta projekt undersöks skillnaden i
Läs merObjektorienterad programmering
Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad
Läs merIBM POWER4, den första flerkärniga processorn och dess pipelines.
IBM POWER4, den första flerkärniga processorn och dess pipelines. 5 DECEMBER 2016 FÖRFATTARE: OSCAR STRANDMARK EXAMINATOR: ERIK LARSSON Abstract Rapporten redovisar IBM:s POWER-serie, generation ett till
Läs merProjektuppgift.
Projekt Projektuppgift Designa och implementera ett webbaserat gränssnitt för att söka information i en befintlig databas. Webssidan ska vara komplett med navigering, överblick, sökning och strukturerad
Läs merPARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA
PARALLELLISERING AV ALGORITMER FÖR FLERKÄRNIGA PROCESSORER 870928 3017 Johan Gustafsson 870303 4952 Gustaf David Hallberg 880525 8210 Per Hallgren 801117 0597 Wuilbert Lopez 1/7 Innehållsförteckning Table
Läs merJava: Utvecklingsverktyg, datatyper, kontrollstrukturer
Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 13 juni 2005 1 Utvecklingsverktyg för Java Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se
Läs merHögskolan i Gävle. Introduktion till att skapa appar för Android VT Eat App! Jacob Gavin
Högskolan i Gävle Introduktion till att skapa appar för Android VT 2016 Eat App! Jacob Gavin tfk16jgi@student.hig.se Inledning Syftet med Eat App är att få människor som inte tidigare mött varandra att
Läs merAnvändarmanual: Ansökan och rapportering i E-kanalen för Energikartläggningsstödet
EM2000 W-4.0, 2010-11-17 Datum 1 (23) Användarmanual: Ansökan och rapportering i E-kanalen för Energikartläggningsstödet Box 310 631 04 Eskilstuna Besöksadress Kungsgatan 43 Telefon 016-544 20 00 Telefax
Läs merCDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA
CDC6600 - en jämförelse mellan superskalära processorer av: Marcus Karlsson Sammanfattning I denna rapport visas konkret information om hur den första superskalära processorn såg ut och hur den använde
Läs merDatorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)
Datorsystem 2 CPU Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur CPU Visning av Akka (för de som är intresserade) En dators arkitektur På en lägre nivå kan vi ha lite olika
Läs merPrestandapåverkan på databashanterare av flertrådiga processorer. Jesper Dahlgren
Prestandapåverkan på databashanterare av flertrådiga processorer av Sammanfattning Behandling av information bli vanligare i dagens samhälle och för att klara denna uppgiften används ofta en databashanterare
Läs merPrestandatest Förberedelser & Faktainsamling. LIGHTS IN LINE AB Tegnérgatan 37 111 61 STOCKHOLM info@lightsinline.se
Prestandatest Förberedelser & Faktainsamling LIGHTS IN LINE AB Tegnérgatan 37 111 61 STOCKHOLM info@lightsinline.se Sida 2 (6) Innehåll 1 Introduktion... 3 2 Sammanfattning... 3 3 Testmetoder... 3 4 Prestandamål
Läs merProjektuppgift- Mashup- Applikation
Projektuppgift- Mashup- Applikation Som avslutning på denna kurs är det tänkt att Du ska bygga en egen mashup- applikation. Du ska bygga en komplett applikation som du utan tvekan skulle kunna vilja visa
Läs merReagera på WoW-event Att använda OnUpdate Introduktion Att kapa funktioner Automatisering och AI
Reagera på WoW-event Att använda OnUpdate Introduktion Att kapa funktioner Automatisering och AI Introduktion pptplex Section Divider The slides after this divider will be grouped into a section and given
Läs merAgenda. Syfte med datorbygge Datorns delar. Datorbygge. Moderkort Processor Minne och hårddisk Instickskort Övrigt
Datorbygge Agenda Syfte med datorbygge Datorns delar Moderkort Processor Minne och hårddisk Instickskort Övrigt Datorbygge Syfte med datorbygge Att alla ska ha byggt ihop en dator eftersom många tror att
Läs merSkicka och hämta filer med automatik till och från Försäkringskassan
Skicka och hämta filer med automatik till och från Försäkringskassan 1 (25) Innehållsförteckning Revisionshistorik... 3 Inledning... 4 1 Förutsättningar... 4 1.1 Registrera... 4 1.2 Certifikat... 4 2 Skicka
Läs merTDTS04: Ett chattsystem i java baserat på corba
18 January 2010 TDTS04: Ett chattsystem i java baserat på corba Juha Takkinen, Ph.D. IDA, Institutionen för datavetenskap 1.0 Översikt Labb 3 består av att utforma, implementera, testa och demonstrera
Läs merProj-Iteration1. Arkitektur alt. 1
Proj-Iteration1 PVG/Coaching Boris Magnusson Datavetenskap LTH Proj-Iter1-1 Registrering Registrering Arkitektur alt. 1 Personuppgifter Starttid Sorterare Måltid Efterbehandling Resultat Tre program som
Läs merMulti-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.
Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant. Sammanfattning När processorns klockhastighet ökar medför det en ökning av instruktioner vilket såklart ökar
Läs merIntroduktion till programmering och Python Grundkurs i programmering med Python
Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?
Läs mer1. Starta om din Mac. 2. Kontrollera din Internetuppkoppling
1. Starta om din Mac En av de enklaste sakerna du kan göra är också en av de mest effektiva. En omstart kan göra susen eftersom det sätter stopp för bakgrundsprocesser och frigör arbetsminne. Förhoppningsvis
Läs mer- Effektiv prestandatestning, teknisk verifiering, tuning, verifiera krav, förvalta prestanda
- Effektiv prestandatestning, teknisk verifiering, tuning, verifiera krav, förvalta prestanda 2015-08-27 1 Christian Gerdes Performance Engineering Evangelist LIGHTS IN LINE AB christian@lightsinline.se
Läs merDecentraliserad administration av gästkonton vid Karlstads universitet
Datavetenskap Opponent(er): Markus Fors Christian Grahn Respondent(er): Christian Ekström Per Rydberg Decentraliserad administration av gästkonton vid Karlstads universitet Oppositionsrapport, C/D-nivå
Läs merSkärmbilden i Netscape Navigator
Extratexter till kapitel Internet Skärmbilden i Netscape Navigator Netscape är uppbyggt på liknande sätt som i de flesta program. Under menyraden, tillsammans med verktygsfältet finns ett adressfält. I
Läs merCacheprobe: programbibliotek för extrahering av cacheminnesparametrar
Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar Gabriel Gerhardsson Cacheprobe p.1/38 Abstract Kan analytiskt ta reda på associativitet, line storlek och storlek på processorns cacheminnen
Läs merVälkommen! SA S PSA S Im I puls s Mobilite t t e 8 1
Välkommen! SAPSA Impuls Mobilitet 81 Impuls sponsorer 2012 Guldsponsorer SAPSA Impuls Mobilitet 81 Mobilitet 81: Mobil reseräkningsapp med möjlighet att fotografera kvittona Christer Ingemarsson Lena Kågedal
Läs mer1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors
1ME323 Webbteknik 3 Lektion 6 API Rune Körnefors Medieteknik 1 2019 Rune Körnefors rune.kornefors@lnu.se Agenda API (Application Programming Interface) Mashup Flickr API Google Maps API Labb 6 2 API (Application
Läs merRFC 6106-stöd i Router Advertisment-klienten radns. Michael Cardell Widerkrantz mc@hack.org
RFC 6106-stöd i Router Advertisment-klienten radns Michael Cardell Widerkrantz mc@hack.org 24 augusti 2011 Innehåll Inledning................................... 2 Mål......................................
Läs merAtt använda accelerationssensorn i en smarttelefon/surfplatta för att göra mätningar
Att använda accelerationssensorn i en smarttelefon/surfplatta för att göra mätningar Mats Braskén (Åbo Akademi) och Ray Pörn (Yrkeshögskolan Novia) Accelerationssensorn Accelerationssensorn mäter accelerationen
Läs merHidden Camera App. Realtidsprogrammering EDA040. Joakim Svensson (dt05js8) Torbjörn Lundberg (dt05tl3) Henrik Andersson (dt05ha1)
Hidden Camera App Realtidsprogrammering EDA040 Joakim Svensson (dt05js8) Torbjörn Lundberg (dt05tl3) Henrik Andersson (dt05ha1) Manual och programbeskrivning 1. Manual 1.1 Kamerauppkoppling 1.2 Starta
Läs merDatorteknik 2 (AVR 2)
Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra
Läs merAgenda. Introducera det individuella projekt Multipla C-filer H-filer Introducera uppgifterna
Agenda Introducera det individuella projekt Multipla C-filer H-filer Introducera uppgifterna Projektupptakt I kursen ingår PRO1, enskild programmeringsuppgift En större programmeringsuppgift som ni löser
Läs merBakom kulisserna. SMHI webservices. Infrastruktur och säkerhetslösningar Demonstration av webservices
OBS: Några av dessa webservice-länkar är nåbara externt. Andra öppnas om det kommer önskemål. SMHI webservices Bakom kulisserna Infrastruktur och säkerhetslösningar Demonstration av webservices Esa Falkenroth,
Läs merIBM FlashSystem (och lite SSD)
IBM FlashSystem (och lite SSD) 2014-10-13 Henrik Grönberg Technical Director henrik.gronberg@load.se Förändringens tid är här Dagens naturresurser Morgondagens naturresurs LKAB omsätter 30 miljarder SEK
Läs merWWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP
Exempel på klientsidan WWW Javascript-interpretator XML-interpretator HTML-interpretator Java-interpretator CSS-interpretator Använder TCP Kan återanvända uppkoppling Inga tillstånd hos servern OS API
Läs merFraktjakt erbjuder en fraktmodul till e-handelssystem byggt på oscommerce som förenklar vardagen för webbutiksadministratören.
Fraktjakts oscommerce Fraktmodul Instruktionsmanual Välkommen Fraktjakt erbjuder en fraktmodul till e-handelssystem byggt på oscommerce som förenklar vardagen för webbutiksadministratören. Den här manualen
Läs merRelease notes för RemoteX Applications Windowsklient version 4.4
Release notes för RemoteX Applications Windowsklient version 4.4 Version 4.4 av RemoteX Applications fokuserar på att väsentligen förbättra användarupplevelsen med avseende på stabilitet och hastighet.
Läs merGodkännande av kundapplikationer
samhällsskydd och beredskap 1 (9) Godkännande av kundapplikationer MSB-50.2 samhällsskydd och beredskap 2 (9) Innehållsförteckning 1 Alla applikationer måste godkännas... 3 1.1 Hur går ansökan om godkännande
Läs merArv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier
Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv
Läs merFörfattare: Juha Söderqvist IT-GUI. Version 1.0. Datum
Författare: Juha Söderqvist IT-GUI Version 1.0 Datum 2017-08-18 Innehåll 1. Introduktion... 3 Human-computer interaction... 3 Grafiska användargränssnitt... 4 Operativsystem... 4 Xerox Alto Executive file
Läs merWebforum. Nytt i Senast uppdaterad:
Webforum Nytt i 17.3 Senast uppdaterad: 2017-09-17 Innehåll Välkommen till ett bättre Webforum!... 3 Översikt... 4 Dokument... 4 Ärenden... 4 Leverantörsfakturor... 4 Administration... 4 Dokument... 5
Läs merPublicera ett MSD-dokument istället för MXD-dokument
Publicera ett MSD-dokument istället för MXD-dokument MSD introducerades i och med version 9.3.1. Syftet är att få så optimerade tjänster som möjligt. Genom analys av dokument får man ut följande kategorier
Läs merManuell import till Lime Pro
Manuell import till Lime Pro Ibland kan det vara nödvändigt att göra en manuell import till Lime Pro, t.e.x. om en fil inte kan importeras och man behöver mer information för att felsöka. I den vanliga
Läs merHur det går att minska effektutvecklingen i en processor genom att ändra pipeline
Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline Linda Wapner HT2018 EITF60 Sammanfattning Effektutvecklingen i en processor har länge ökat genom att klockfrekvensen för
Läs merMultithreading in Intel Pentium 4 - Hyperthreading
Multithreading in Intel Pentium 4 - Hyperthreading Sammanfattning Hyper-threading är en implementation av SMT(Simultaneous Multithreading) teknologi som används på Intel processorer. Implementationen användes
Läs merweb: www.injektor.com 2003-09-12 e-mail: info@injektor.com fax: 0709 66 78 96 tel: kontor 08-753 00 04, Toby Edmundsson mobil: 0704 38 01 99, Jan
Quick-Start Manual TempRecord Temprecord är ett välbeprövat system för att ta in mätdata och möjliggöra senare analys av dessa. Företaget har funnits en längre tid på marknaden och borgar för god kvalitet.
Läs mer1. Mekanisk svängningsrörelse
1. Mekanisk svängningsrörelse Olika typer av mekaniska svängningar och vågrörelser möter oss överallt i vardagen allt från svajande höghus till telefoner med vibrationen påslagen hör till denna kategori.
Läs merAtt använda DVD-RAM-skivor
Denna bruksanvisning innehåller ett minimum av information för att använda DVD-RAM-skivor tillsammans med drivenheten DVD MULTI under Windows 98/Me/2000. Windows, Windows NT och MS-DOS är registrerade
Läs merKriswebb och Krisserver ur ett tekniskt perspektiv
Kriswebb och Krisserver ur ett tekniskt perspektiv Av Johan Olsson vid IT avdelningen på HTU Johan.Olsson@htu.se Definition av kriswebb Kriswebb är ett system som möjliggör snabb publicering av information
Läs merTeoretisk del. Facit Tentamen TDDC (6)
Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för
Läs merGränssnitt för FakeGranska. Lars Mattsson
Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken
Läs merWebbtjänster med API er
Webbtjänster med API er Mål med lektionen! Veta kursmålen. Lite grunder om WCF Vem är jag? Mitt namn är Björn Jönsson och jobbar på Tahoe Solutions, ni når mig via mail: bjorn.jonsson@tahoesolutions.se
Läs merSwedbank Mobile Loadtesting. LoadRunner 11.04 Mobile App protocol
Swedbank Mobile Loadtesting LoadRunner 11.04 Mobile App protocol Bakgrund Mission: Prestandatesta mobilt backend Typ: RESTful tjänst Underlag: Dokumenterat URI och API (Uniform Resource Identifier, Application
Läs merTENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng
TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,
Läs merRepetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005
Repetition DK2 Middleware, P2P, Multimediatransport Stefan Alfredsson 18 Mars 2005 Några definitioner på middleware Klistret som gör det möjligt för en klient att få betjäning av en server / i klient/server
Läs merIP-baserade program. Telnet
Det här kapitlet behandlar några klassiska TCP/IP-baserade program. Främsta fokus är HTTP men även lite enklare applikationer som telnet och FTP behandlas. Kapitlet är tänkt att kunna läsas fristående
Läs merFilsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn
Varför? För att kunna lagra data mer permanent än i RAM Hur? Vettig organisation Vettiga namn Stora/små bokstäver 8-bitars tecken (teckenkodning) File extensions Längd Struktur på filerna Byte efter byte,
Läs merLunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:
Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60 Superscalar vs VLIW Cornelia Kloth IDA2 Inlämningsdatum: 2018-12-05 Abstract Rapporten handlar om två tekniker inom multiple issue processorer
Läs merVilket moln passar dig bäst?
Vilket moln passar dig bäst? Idag diskuteras ofta huruvida man ska kliva in i molnets underbara värld eller inte, men sällan om skillnaderna mellan olika moln och vilka tillämpningar som är lämpliga att
Läs merDigitala projekt rapport
Digitala projekt rapport Alexander Westrup, d04aw@student.lth.se Martin Sandgren, d04ms@student.lth.se 4 december 2007 Innehåll 1 Abstract 1 2 Inledning 1 3 Arbetsgång 1 4 Hårdvara 1 4.1 Processor...............................
Läs merHI1024 Programmering, grundkurs TEN2 2014-03-13
HI1024 Programmering, grundkurs TEN2 2014-03-13 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
Läs mer3.2 1H[W*HQHUDWLRQ6HFXULW\ Användarmanual
3.2 1H[W*HQHUDWLRQ6HFXULW\ Användarmanual ,QQHKnOOVI UWHFNQLQJ,QVWDOODWLRQDY931NOLHQW 'DWRUHUVRPLQJnULHQ)DVW7UDFNPLOM $QYlQGDUHPHGNRQWRL9+6RFKGDWRUPHG:LQGRZV;3 $QYlQGDUHPHGNRQWRLDQQDQGRPlQlQ9+6HOOHUGDWRUPHG:LQGRZV
Läs merAnujan Balasingam IDA14 NAND flashminnen
Anujan Balasingam IDA14 NAND flashminnen Hur kan prestandan och kapaciteten förbättras? Kursansvarig: Erik Larsson Datorarkitektur med operativsystem 7,5 hp 04-12-2015 Innehållsförteckning 1. Inledning...
Läs merVektorkartor för mobila terminaler
Vektorkartor för mobila terminaler Magnus Janlert 3 juni 2004 Introduktion Externt examensarbete, utfört VT2003 Visualiseringscentrum, c:a tio anställda, en del av Lantmäteriet Handledare: Jerry Eriksson
Läs merTekis-FB 7.1.0. Systemkrav
7.1.0 Systemkrav Systemkrav 2015-09-17 MAAN 2 (2) Systemkrav 7.1.0 Dokumentet beskriver de krav som systemet ställer på maskinvara och programvara i de servrar och klientdatorer som ska användas för systemet.
Läs merWLTP. Worldwide harmonised Light vehicles Test Procedure
WLTP Worldwide harmonised Light vehicles Test Procedure Vad är WLTP? WLTP står för Worldwide harmonised Light vehicles Test Procedure som är den nya mätmetoden för laboratorietester av bilars bränsleförbrukning
Läs merTentamen, Distribuerade System/Programvaruarkitektur 2001-08-24
Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24 FÖRSÄTTSBLAD Inlämnas ifyllt tillsammans med tentan. Skriv namn på samtliga blad. Ange nedan vilka uppgifter du besvarat. Uppgift Besvarad
Läs merSlutrapport för SquareShooter
Slutrapport för SquareShooter Författare: Björn Overå Datum: 100609 Page 1 Abstrakt: Detta är en slutrapport för ett projekt jag har haft i kursen Individuellt Mjukvaruutvecklingsprojekt. Denna rapport
Läs merSnake App Rapport - Snake App Rapport Utskriven/PDF Export: 2011-10-17 Copyright 2011 - Version 1.2 Sidan 1 av 9.
Snake App Rapport - Snake App Rapport Utskriven/PDF Export: 20-0-7 Copyright 20 - Version.2 Sidan av 9 Snake App Rapport DAT255 - Software engineering project Jesper Sjövall Martin Sonesson Alesandro Sanchez
Läs mer725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack
725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den
Läs merDatakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll?
1 Vad är speciellt med implementering av kommunikationsprotokoll? 2 Översikt Inledning Hårdvaru-vy och mjukvaru-vy Mjukvaruarkitektur Rules of thumb Minnesbandbredd TCP-implementering ILP Integrated Layer
Läs merRELEASE 14.1. Release 14.1 kommer finnas tillgänglig för er måndagen den 10 mars 2014. Allmänt
RELEASE 14.1 Release 14.1 kommer finnas tillgänglig för er måndagen den 10 mars 2014. Allmänt Under den gångna utvecklingsperioden har vi utöver nya funktioner och migrering av sidor för olika webbläsare,
Läs merInsamlingsverktyg - teknisk beskrivning av metadataformuläret
Digitala leveranser Insamlingsverktyg - teknisk beskrivning av metadataformuläret Innehåll: Allmänt Layout och uppbyggnad Hur man använder programmet Starta Fylla i metadata Skapa metadatafiler och leverera
Läs merTraffic Management i praktiken
Traffic Management i praktiken Datum: Presentatör: Event: 1:a november 2004 Jon Lindén Internetdagarna Innehåll: Traffic Management i praktiken vad är möjligt och vad är önskvärt. Hur hanterar man snabb
Läs merProjektet. TNMK30 - Elektronisk publicering
Projektet TNMK30 - Elektronisk publicering Gruppindelning projekt Valfria grupper ~4 per grupp TNM088 - Digitala media-grupperna är ok Projektgrupper 4 personer Jämna par Lika arbete för små grupper Anmäl
Läs merDI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:
Läs merTrust-IT Cloud Services
Trust-IT Cloud Services IT-drift är vad vi arbetar med. IT-drift är det området vi är specialiserade på och också har stor kompetens inom. Att ni som kund har en IT-miljö som möter era behov och att ni
Läs merSystemkrav WinServ II Edition Release 2 (R2)
Systemkrav WinServ II Edition Release 2 (R2) Observera: Alla rekommendationer är aktuella vid den tid då dokumentet publicerades och visar den senaste informationen för nödvändig mjukvara. Systemkrav för
Läs merWebbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011
Webbteknik II Föreläsning 4 Watching the river flow Web Service XML-RPC, SOAP, WSDL, UDDI HTTP Request, Response, Headers, Cache, Persistant Connection REST Hype or the golden way? Web Service / Webbtjänst
Läs merD/A- och A/D-omvandlarmodul MOD687-31
D/A- och A/D-omvandlarmodul MOD687-31 Allmänt Modulen är helt självförsörjande, det enda du behöver för att komma igång är en 9VAC väggtransformator som du kopplar till jacket J2. När du så småningom vill
Läs mer(7) Neptune Version release information. Copyright Visma. Med ensamrätt.
2015-02-10 1 (7) Neptune 7.8.0. Version release information Innehållsförteckning 2015-02-10 2 (7) 1 Allmän information om versionen... 3 1.1 Förkrav... 3 2 Förändringar i denna version... 4 2.1 Ändrad
Läs merPraktiska tillämpningar av QoS-teknologi
Praktiska tillämpningar av QoS-teknologi Inlämningsuppgift till seminariekursen i datakommunikation och distribuerade system. Ola Lundgren d99eol@dtek.chalmers.se 790502-8531 Mattias Thorén d99torez@dtek.chalmers.se
Läs merÖVERVAKNING AV SQL SERVER
ÖVERVAKNING AV SQL SERVER Hantering resurser för samtidiga användare Övervakning av SQL Servers aktiviteter Hantering av blockerade processer Användning av SQL Profiler för att hitta besvärliga frågor
Läs merRandom Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya
Random Access Memory Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya Introduktion Historia Vad är RAM? Hur fungerar RAM? Dataöverföring, tidsklocka och termer Vilka är de olika typerna av RAM? Vad
Läs merBonus Rapport Kommersiell Design KTH
Bonus Rapport Kommersiell Design KTH Johan Holmström & Lars Åkesson Introduktion Denna rapport beskriver projektet och delmomentet Kommersiell Design i kursen Interaktionsdesign 2 på KTH i Stockholm. Detta
Läs merJavaScript in SharePoint and not just for Apps. Wictor Wilén
JavaScript in SharePoint and not just for Apps Wictor Wilén Wictor Wilén Agenda Varför JavaScript? JavaScript bibliotek SharePoint JS bibliotek JavaScript Client Side Object Model (JSOM/CSOM) REST Client
Läs merIntroduktion till integrering av Schenkers e-tjänster. Version 2.0
Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen
Läs merJavaScript del 9 Dynamik och animeringar
JavaScript del 9 Dynamik och animeringar Det sista vi ska titta på när det kommer till att lära oss JavaScript är hur vi skapar dynamik på vår webbplats, ge användarna chansen att påverka vad som händer
Läs merTDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl
TDDIU81 Processer och trådar Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl Sammanfattning Den här rapporten innehåller en kort genomgång av allmän process och trådhantering
Läs merIT för personligt arbete F2
IT för personligt arbete F2 Nätverk och Kommunikation DSV Peter Mozelius Kommunikation i nätverk The Network is the Computer Allt fler datorer är sammankopplade i olika typer av nätverk En dators funktionalitet
Läs merSkriftlig tentamen i kursen TDTS04 Datornät och distribuerade system 2008-08-21 kl. 8 12
LiTH, Tekniska högskolan vid Linköpings universitet (6) IDA, Institutionen för datavetenskap Juha Takkinen 2008-08-9 Skriftlig tentamen i kursen TDTS04 Datornät och distribuerade system 2008-08-2 kl. 8
Läs merParaplyprojekt Events
Paraplyprojekt Events Information till dig som vill söka check ur ett paraplyprojekt - Tänk på att stödet syftar till att utveckla befintliga evenemang eller skapa nya. Detta måste tydligt framgå i ansökan.
Läs merObjektorienterad programmering, Java, 5p TDBA63
UMEÅ UNIVERSITET Datavetenskap 030219 PRAKTISKT DELPROV Objektorienterad programmering, Java, 5p TDBA63 Datum : 030205 Tid : 9 13 Hjälpmedel : Allt. Kommunikation med andra personer (direkt eller indirekt)
Läs merPalo Alto Networks. 10 saker din brandvägg måste klara av (För annars är det inte en riktig brandvägg)
Palo Alto Networks 10 saker din brandvägg måste klara av (För annars är det inte en riktig brandvägg) 1. Identifiera och kontrollera applikationer på alla portar Applikationsutvecklare bryr sig inte längre
Läs merKortfattad instruktion för installation och användning av streckodsapplikationer
Kortfattad instruktion för installation och användning av streckodsapplikationer 2 1. Installation 2.2 1.1 Förberedelser För att installera applikationen scanner.s32 i streckodsläsaren Opticon OPL9728,
Läs mer