ping ----- Original Message ----- From: "Hamza Bin Sohail" <[email protected]> To: [email protected] Sent: Thursday, June 26, 2014 9:10:06 PM Subject: Questions regarding cloudsuite request-oriented benchmarks
Hi all, I wanted to ask a few questions regarding request-oriented scaleout workloads in cloudsuite e.g memcached, websearch etc. I'm interested in downloading the simics images but before that, I had a few questions. 1) In the Wisconsin GEMS simulation infrastructure, there is a clear notion of transactions for commercial workloads and performance is measured in terms of throughput i.e cycles per transaction , and not in terms of instructions executed. The reason obviously being that it is perfectly possible for multi-threaded workloads to be executing instructions while not doing any useful work e.g busy-waiting etc. Whenever a transaction is initiated or ended, the drivers inform the simulator (simics) through magic instructions. The magic instructions are event notification mechanisms. So the question is: Do the cloudsuite simics images for memcached,websearch and other request-oriented workloads have that mechanism in place to inform simflex about the completion of events ? For example, when the Faban driver gets a query response in websearch, or initiates one, does it tell Simflex about it through magic instructions ? If not, what mechanism does simflex use to report the number of requests completed in the final reported out ? 2) I am guessing these workloads setup as a distributed simics simulation, correct ? For example, for websearch, is the frontend server on a separate simulated machine, and the driver on a separate simulated machine, and the index nodes on a separate simulated machine ? If yes, and if the answer to my question in 1) is yes as well, then for websearch, are the magic instructions placed in the faban driver to notify whether a request has ended or started ? 3) This question is only relevant if simflex does not know when a request was generated or completed. If the answer to 1) is no, how is performance measured ? Is the benchmark run for fixed number of instructions in each sampling phase and then their execution times in each phase is aggregated / extrapolated to what the most likely execution time would've been if the entire benchmark were run to completion ? Thanks alot Hamza
