Spelling suggestions: "subject:"prestandaoptimering"" "subject:"prestandaestimering""
1 |
Improving Quality of Experience through Performance Optimization of Server-Client CommunicationAlbinsson, Mattias, Andersson, Linus January 2016 (has links)
In software engineering it is important to consider how a potential user experiences the system during usage. No software user will have a satisfying experience if they perceive the system as slow, unresponsive, unstable or hiding information. Additionally, if the system restricts the users to only having a limited set of actions, their experience will further degrade. In order to evaluate the effect these issues have on a user‟s perceived experience, a measure called Quality of Experience is applied. In this work the foremost objective was to improve how a user experienced a system suffering from the previously mentioned issues, when searching for large amounts of data. To achieve this objective the system was evaluated to identify the issues present and which issues were affecting the user perceived Quality of Experience the most. The evaluated system was a warehouse management system developed and maintained by Aptean AB‟s office in Hässleholm, Sweden. The system consisted of multiple clients and a server, sending data over a network. Evaluation of the system was in form of a case study analyzing its performance, together with a survey performed by Aptean staff to gain knowledge of how the system was experienced when searching for large amounts of data. From the results, three issues impacting Quality of Experience the most were identified: (1) interaction; limited set of actions during a search, (2) transparency; limited representation of search progress and received data, (3) execution time; search completion taking long time. After the system was analyzed, hypothesized technological solutions were implemented to resolve the identified issues. The first solution divided the data into multiple partitions, the second decreased data size sent over the network by applying compression and the third was a combination of the two technologies. Following the implementations, a final set of measurements together with the same survey was performed to compare the solutions based on their performance and improvement gained in perceived Quality of Experience. The most significant improvement in perceived Quality of Experience was achieved by the data partitioning solution. While the combination of solutions offered a slight further improvement, it was primarily thanks to data partitioning, making that technology a more suitable solution for the identified issues compared to compression which only slightly improved perceived Quality of Experience. When the data was partitioned, updates were sent more frequently and allowed the user not only a larger set of actions during a search but also improved the information available in the client regarding search progress and received data. While data partitioning did not improve the execution time it offered the user a first set of data quickly, not forcing the user to idly wait, making the user experience the system as fast. The results indicated that to increase the user‟s perceived Quality of Experience for systems with server-client communication, data partitioning offered several opportunities for improvement. / I programvaruteknik är det viktigt att överväga hur en potentiell användare upplever ett system vid användning. Ingen användare kommer att ha en tillfredsställande upplevelse om de uppfattar systemet som långsamt, icke responsivt, ostabilt eller döljande av information. Dessutom, om systemet binder användarna till ett begränsat antal möjliga handlingar, kommer deras upplevelse vidare försämras. För att utvärdera vilken påverkan dessa problem har på en användares upplevda kvalitet, används mätenheten Upplevd Tjänstekvalitet. I detta arbete var det huvudsakliga syftet att förbättra en användares upplevelse av ett system som led av de tidigare nämnda problemen vid sökning av större datamängder. För att uppnå detta syfte utvärderades systemet för att identifiera befintliga problem samt vilka som mest påverkade användares Upplevda Tjänstekvalitet. Systemet som utvärderades var en mjukvara för lagerhantering som utvecklades och underhölls av Aptean AB‟s kontor i Hässleholm, Sverige. Systemet bestod av flera klienter och en server som skickade data över ett nätverk. Systemet utvärderades med en fallstudie där prestandan anayserades tillsammans med en enkät utförd i samarbete med Apteans personal för att få insikt i hur systemet upplevdes vid sökningar av stora datamängder. Resultaten visade på tre problem som hade störst inverkan på den Upplevda Tjänstekvaliteten: (1) interaktion; begränsade antal möjliga handlingar under en sökning, (2) transparens; begränsad tillgång till information om sökningens progress samt den hämtade datan, (3) körningstid; slutförande av en sökning tog lång tid. Efter att systemet hade analyserats, implementerades hypotetiska teknologiska lösningar för att lösa de identifierade problemen. Den första lösningen delade in datan i ett flertal partitioner, den andra minskade datans storlek som skickades över nätverket genom att tillämpa komprimering och den tredje var en kombination av de två teknologierna. Efter implementationen utfördes en sista uppsättning mätningar tillsammans med enkäten för att jämföra lösningarna baserat på deras prestanda och förbättringar av Upplevd Tjänstekvalitet. Den mest signifikanta förbättringen av Upplevd Tjänstekvalitet kom från datapartitioneringslösningen. Trots att kombinationen av lösningar uppnådde en mindre vidare förbättring, var det primärt tack vare datapartitioneringen, vilket innebar att den teknologin var den mest passande lösningen till de identifierade problemen jämfört med komprimering, vilken visade på endast en liten förbättring av Upplevd Tjänstekvalitet. När data partitionerades kunde flera uppdateringar skickas och användaren tilläts ett större antal möjliga handlingar under en sökning, men också en förbättrad tillgång till information i klienten angående sökningens progress samt den hämtade datan. Trots att datapartitionering inte förbättrade körningstiden, kunde den erbjuda användaren en första mängd data snabbt utan att tvinga användaren att sysslolöst vänta, vilket gjorde att systemet upplevdes som snabbt. För att förbättra den Upplevda Tjänstekvaliteten för system med server-klient kommunikation visade resultaten att datapartitionering är en lösning som erbjöd flera möjligheter för förbättring.
|
2 |
Performance Optimization of Signal Processing Algorithms for SIMD ArchitecturesYagneswar, Sharan January 2017 (has links)
Digital Signal Processing(DSP) algorithms are widely implemented in real time systems.In fields such as digital music technology, many of these said algorithms areimplemented, often in combination, to achieve the desired functionality. When itcomes to implementation, DSP algorithms are performance critical as they havetight deadlines. In this thesis, performance optimization using Single InstructionMultiple Data(SIMD) vectorization technique is performed on the ARM Cortex-A15 architecture for six commonly used DSP algorithms; Gain, Mix, Gain and Mix,Complex Number Multiplication, Envelope Detection and Cascaded IIR Filter. Toensure optimal performance, the instructions should be scheduled with minimalpipeline stalls. This requires execution time to be measured with fine time granularity.First, a technique of accurately measuring the execution time using thecycle counter of the processor’s Performance Management Unit(PMU) along withsynchronization barriers is developed. It was found that the execution time measuredby using the operating system calls have high variations and very low timegranularity, whereas the cycle counter method was accurate and produced reliableresults. The cost associated with the cycle counter method is 75 clock cycles. Usingthis technique, the contribution by each SIMD instruction towards the executiontime is measured and is used to schedule the instructions. This thesis also presentsa guideline on how to schedule instructions which have data dependencies usingthe cycle counter timing execution time measurement technique, to ensure that thepipeline stalls are minimized. The algorithms are also modified, if needed, to favorvectorization and are implemented using ARM architecture specific SIMD instructions.These implementations are then compared to that which are automaticallyproduced by the compiler’s auto-vectorization feature. The execution times of theSIMD implementations was much lower compared to that produced by the compilerand the speedup ranged from 2.47 to 5.11. Also, the performance increaseis significant when the instructions are scheduled in an optimal way. This thesisconcludes that the auto-vectorized code does poorly for complex algorithms andproduces code with a lot of data dependencies causing pipeline stalls, even with fulloptimizations enabled. Using the guidelines presented in this thesis for schedulingthe instructions, the performance of the DSP algorithms have significant improvementscompared to their auto-vectorized counterparts. / Digitala signalbehandlingsalgoritmer(DSP) implementeras ofta i realtidssystem. Inomfält som exempelvis digital musikteknik används dessa algoritmer, ofta i olika kombinationer,för att ge önskad funktionalitet. Implementationen av DSP-algoritmerär prestandakritisk eftersom systemen ofta har små tidsmarginaler. I det härexamensarbetet genomförs prestandaoptimering med Single Instruction MultipleData(SIMD)-vektorisering på en ARM A15-arkitektur för 6 vanliga DSP-algoritmer;volym, mix, volym och mix, multiplikation av komplexa tal, amplituddetektering,och seriekopplade IIR-filter. Maximal optimering av algoritmerna kräver ocksåatt antalet pipeline stalls i processorn minimeras. För att kunna observera dettakrävs att exekveringstiden kan mätas med hög tidsupplösning. I det här examensarbeteutvecklas först en teknik för att mäta exekveringstiden med hjälp aven klockcykelräknare i processorns Performance Management Unit(PMU) tillsammansmed synkroniseringsbarriärer. Tidsmätning med hjälp av operativsystemsfunktionervisade sig ha sämre noggrannhet och tidsupplösning än metoden medatt räkna klockcykler, som gav tillförlitliga resultat. Den extra exekveringstidenför klockcykelräkning uppmättes till 75 klockcykler. Med den här tekniken är detmöjligt att mäta hur mycket varje SIMD-instruktion bidrar till den totala exekveringstiden.Examensarbete presenterar också en metod att ordna instruktioner somhar databeroenden sinsemellan med hjälp av ovanstående tidsmätningsmetod, såatt antalet pipeline stalls minimeras. I de fall det behövdes, skrevs koden till algoritmernaom för att bättre kunna utnyttja ARM-arkitekturens specifika SIMDinstruktioner.Dessa jämfördes sedan med resultaten från kompilatorns automatgenereradevektoriseringkod. Exekveringstiden för SIMD-implementationerna varsignifikant kortare än för de kompilatorgenererade och visade på en förbättring påmellan 2,47 och 5,11 gånger, mätt i exekveringstid. Resultaten visade också på entydlig förbättring när instruktionerna exekveras i en optimal ordning. Resultatenvisar att automatgenererad vektorisering presterar sämre för komplexa algoritmeroch producerar maskinkod med signifikanta databeroenden som orsakar pipelinestalls, även med optimeringsflaggor påslagna. Med hjälp av metoder presenteradei det här examensarbete kan prestandan i DSP-algoritmer förbättras betydligt ijämförelse med automatgenererad vektorisering.
|
Page generated in 0.1103 seconds