Computer Hardware Optimization

Slides:



Advertisements
Similar presentations
MATH 224 – Discrete Mathematics
Advertisements

ISBN Chapter 3 Describing Syntax and Semantics.
Algorithm Strategies Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Online Performance Auditing Using Hot Optimizations Without Getting Burned Jeremy Lau (UCSD, IBM) Matthew Arnold (IBM) Michael Hind (IBM) Brad Calder (UCSD)
Algorithmic Complexity Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Integrating Bayesian Networks and Simpson’s Paradox in Data Mining Alex Freitas University of Kent Ken McGarry University of Sunderland.
1 Machine Learning: Symbol-based 10d More clustering examples10.5Knowledge and Learning 10.6Unsupervised Learning 10.7Reinforcement Learning 10.8Epilogue.
03/09/2007CSCI 315 Operating Systems Design1 Memory Management Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Professor John Peterson
CS 280 Data Structures Professor John Peterson. Big O Notation We use a mathematical notation called “Big O” to talk about the performance of an algorithm.
Describing Syntax and Semantics
New Mexico Computer Science For All Introduction to Algorithms Maureen Psaila-Dombrowski.
Adaptive Video Coding to Reduce Energy on General Purpose Processors Daniel Grobe Sachs, Sarita Adve, Douglas L. Jones University of Illinois at Urbana-Champaign.
06 - Boundary Models Overview Edge Tracking Active Contours Conclusion.
Data Structures and Algorithm Analysis Hashing Lecturer: Jing Liu Homepage:
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Analysis of Algorithms
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
Design of Algorithms by Induction Part 1 Algorithm Design and Analysis Week 3 Bibliography: [Manber]- Chap.
Chapter 1 Introduction Chapter 1 Introduction 1 st Semester 2015 CSC 1101 Computer Programming-1.
Problem Analysis September 18, 2015 CSE 232, Shane Carr.
CSCI-100 Introduction to Computing
Hunter Gear Optimization Team Alt + F4 Michael Barbour; Joshua Law son; Michael Lee.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 31 Memory Management.
Canny Edge Detection Using an NVIDIA GPU and CUDA Alex Wade CAP6938 Final Project.
Various Problem Solving Approaches. Problem solving by analogy Very often problems can be solved by looking at similar problems. For example, consider.
CS120 Purchasing a Computer
Lecture 3: Uninformed Search
Ideal Ref How to use it.
Excursions in Modern Mathematics Sixth Edition
Generalized and Hybrid Fast-ICA Implementation using GPU
Vocabulary Algorithm - A precise sequence of instructions for processes that can be executed by a computer Low level programming language: A programming.
Adaptive Median Filter
Parallel Plasma Equilibrium Reconstruction Using GPU
Algorithmic complexity: Speed of algorithms
Analysis of Algorithms
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Department of Computer Science
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
dawn.cs.stanford.edu/benchmark
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Forecasting The Future of Movies
Artificial Intelligence Problem solving by searching CSC 361
Bin Packing Optimization
Multi - Way Number Partitioning
Short paths and spanning trees
Selection CIS 40 – Introduction to Programming in Python
Introduction to Computer Programming
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Objective of This Course
Smita Vijayakumar Qian Zhu Gagan Agrawal
Kevin Mason Michael Suggs
Automating Scanner Construction
Richard Anderson Lecture 3
4. Computational Problem Solving
Algorithmic complexity: Speed of algorithms
Matthew Renner, Trish Beeksma, Patch Kenny
Algorithmic complexity: Speed of algorithms
Introduction to Algorithms
Data Structures and Algorithm Analysis Hashing
What are the real world implications of this project?
Modeling Rainfall using a Cellular Automata
Alex Bolsoy, Jonathan Suggs, Casey Wenner
Design and Analysis of Algorithms
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Presentation transcript:

Computer Hardware Optimization By Seth Register and Ethan Ingalls Computer Hardware Optimization S

Introduction Deciding the best possible hardware for one’s money is often tedious. Combined original idea of video card optimization and TSP. More resources for TSP!! S

What does our program do? Takes a set of inputs: GPU: RAM: CPU: HDD: GPU#1 RAM#1 CPU#1 HDD#1 GPU#2 RAM#2 CPU#2 HDD#2 GPU#3 RAM#3 CPU#3 HDD#3 With a cost constraint Finds the ideal single combination Can choose which algorithm to run E

Formal Statement: Given a set of finite computer hardware(inputs) and a cost constraint, find the combination of CPU, GPU, RAM, and HDD with the highest score in the lowest amount of time. S

Benchmarks Scores from FutureMark They use 3DMark software Set creation from a known set S & E

Brute Force: Try EVERYTHING!!! Very accurate Takes a long time O(n4) E

Results: Score vs number of inputs: Time vs number of inputs: (Yaxis = Score, Xaxis = inputs) (Yaxis = Time, Xaxis = inputs) At 100 inputs score was: 86923 At 100 inputs time was: 0.3 seconds At 500 inputs score was: 437240 At 500 inputs time was: 168.0 seconds E

Greedy As lazy as possible If there is enough money, adds the cheapest GPU, CPU, RAM, and HDD. Keeps adding one until the money runs out. S

Results Score vs number of inputs: Time vs number of inputs: At 100 inputs score was: 41801 At 100 inputs time was: 1 (ms) At 500 inputs score was: 166160 At 500,000 inputs time was: 57ms seconds (Yaxis = Score, Xaxis = inputs) (Yaxis = Time, Xaxis = inputs) S

Modified Brute Force Accuracy is the same as Brute Force Time is reduced on tight constraints Has two checks to avoid unnecessary iterations E

Results: Score vs number of inputs: Time vs number of inputs: (Yaxis = Score, Xaxis = inputs) (Yaxis = Time, Xaxis = inputs) At 100 inputs score was: 86923 At 100 inputs time was: 0.15 seconds At 500 inputs score was: 437240 At 500 inputs time was: 88.6 seconds E

Conclusion Time: Brute Force vs Greedy vs MBF Score: 100 0.3 seconds 1 ms 0.15 seconds 500 168 seconds 88.6 seconds 500,000 Null 57 ms ~Null/2 100 86923 41801 500 437240 166100 S & E

Future Work Add more inputs Allow for some inputs to be omitted during the search Print an image of the resulting hardware with buy links S

Why 380? Learned, designed, and implemented three algorithms Accuracy vs Practicality Created an awesome program! E & S

Questions: 1. What is the difference between the Brute Force and Modified Brute Force, and how does it affect their time complexities? 2. What are two problems when using Greedy algorithm? 3. Why would a Greedy algorithm ever be used? 1)MBF has checks to eliminate unnecessary iterations Creates an average case about half of BF 2) Least accurate Depends on which input is first in the code 3)With high amount of inputs