SURVEY:SUMMARY:BUILD_DIFFICULTY[not_applicable, reasonable_effort, code_problematic or string] not_applicable SURVEY:SUMMARY:CLASSIFICATION[practical,theoretical,hardware] hardware SURVEY:SUMMARY:CORRECT_CODE_LOCATION[string] SURVEY:SUMMARY:PUBLISHED_CODE[not_applicable, yes, no] not_applicable SURVEY:SUMMARY:SAME_VERSION[not_applicable, yes, no_but_available, no_and_not_available] not_applicable SURVEY:SUMMARY:STUDY_FOUND_CORRECT_CODE[not_applicable, yes, no] not_applicable SURVEY:AUTHOR1:BUILD_COMMENT[string] SURVEY:AUTHOR1:BUILD_DIFFICULTY[not_applicable, reasonable_effort, code_problematic or string] not_applicable SURVEY:AUTHOR1:BUILD_DIFFICULTY_COMMENT[string] none SURVEY:AUTHOR1:CLASSIFICATION[practical,theoretical,hardware] hardware SURVEY:AUTHOR1:CLASSIFICATION_COMMENT[string] SURVEY:AUTHOR1:CORRECT_CODE_LOCATION[string] SURVEY:AUTHOR1:PUBLIC_COMMENT[string] I have categorized our ASPLOS'12 paper on battery based peak shaving as hardware since it requires certain hardware equipment (smart PDUs, battery/UPS units) for experimentally verifying the results.

In order to reproduce the battery based peak shaving results, you will need to connect each experimental server to an online UPS unit which should in turn be connected to one of the outlets on an intelligent PDU or power strip. Intelligent power strip allows us to remotely toggle power output to an outlet, allowing us to simulate a power outage to the corresponding battery unit. The UPS will start to source server power and the duration of battery sourcing can be controlled by toggling back power to this outlet.

The DVFS technique can be easily reproduced since most operating systems (Windows advanced power options, Linux CPU power governor) provide native support for changing the processor voltage/frequency. SURVEY:AUTHOR1:PUBLISHED_CODE[not_applicable, yes, no] not_applicable SURVEY:AUTHOR1:SAME_VERSION[not_applicable, yes, no_but_available, no_and_not_available] not_applicable SURVEY:AUTHOR1:SAME_VERSION_COMMENT[string] none SURVEY:AUTHOR1:STUDY_FOUND_CORRECT_CODE[not_applicable, yes, no] not_applicable