CMU-SAFARI / MQSim

MQSim is a fast and accurate simulator modeling the performance of modern multi-queue (MQ) SSDs as well as traditional SATA based SSDs. MQSim faithfully models new high-bandwidth protocol implementations, steady-state SSD conditions, and the full end-to-end latency of requests in modern SSDs. It is described in detail in the FAST 2018 paper by Arash Tavakkol et al., "MQSim: A Framework for Enabling Realistic Studies of Modern Multi-Queue SSD Devices" (https://people.inf.ethz.ch/omutlu/pub/MQSim-SSD-simulation-framework_fast18.pdf)
https://people.inf.ethz.ch/omutlu/pub/MQSim-SSD-simulation-framework_fast18.pdf
MIT License
268 stars 144 forks source link

MQSim only issue synthetic workload #46

Closed DanlinJia closed 3 years ago

DanlinJia commented 3 years ago

Hi,

I try to run MQSim on a trace_based workload. The workload.xml is shown as following:

<?xml version="1.0" encoding="us-ascii"?>
<MQSim_IO_Scenarios>
    <IO_Scenario>
        <IO_Flow_Parameter_Set_Trace_Based>
            <Priority_Class>HIGH</Priority_Class>
            <Device_Level_Data_Caching_Mode>WRITE_CACHE</Device_Level_Data_Caching_Mode>
            <Channel_IDs>0,1,2,3,4,5,6,7</Channel_IDs>
            <Chip_IDs>0,1,2,3</Chip_IDs>
            <Die_IDs>0,1</Die_IDs>
            <Plane_IDs>0,1</Plane_IDs>
            <Initial_Occupancy_Percentage>70</Initial_Occupancy_Percentage>
            <File_Path>traces/test.trace</File_Path>
            <Percentage_To_Be_Executed>100</Percentage_To_Be_Executed>
            <Relay_Count>1</Relay_Count>
            <Time_Unit>NANOSECOND</Time_Unit>
        </IO_Flow_Parameter_Set_Trace_Based>
    </IO_Scenario>
</MQSim_IO_Scenarios>

After running MQSim, it seems MQSim runs on a synthetic workload, as I print type of workflow in "parameters->IO_Flow_Definitions[flow_id]->Type", which is 0. The following is the output.

MQSim started at Thu Oct 22 18:08:00 2020

******************************
Executing scenario 1 out of 1 .......

[>                   ]  0% progress in Host.IO_Flow.Synth.No_0

[>                   ]  0% progress in Host.IO_Flow.Synth.No_1

[=>                  ]  5% progress in Host.IO_Flow.Synth.No_1

[=>                  ]  5% progress in Host.IO_Flow.Synth.No_0

[==>                 ]  10% progress in Host.IO_Flow.Synth.No_1

[==>                 ]  10% progress in Host.IO_Flow.Synth.No_0

[===>                ]  15% progress in Host.IO_Flow.Synth.No_0

[===>                ]  15% progress in Host.IO_Flow.Synth.No_1

[====>               ]  20% progress in Host.IO_Flow.Synth.No_1

[====>               ]  20% progress in Host.IO_Flow.Synth.No_0

[=====>              ]  25% progress in Host.IO_Flow.Synth.No_0

[=====>              ]  25% progress in Host.IO_Flow.Synth.No_1

[======>             ]  30% progress in Host.IO_Flow.Synth.No_1

[======>             ]  30% progress in Host.IO_Flow.Synth.No_0

[=======>            ]  35% progress in Host.IO_Flow.Synth.No_0

[=======>            ]  35% progress in Host.IO_Flow.Synth.No_1

[========>           ]  40% progress in Host.IO_Flow.Synth.No_0

[========>           ]  40% progress in Host.IO_Flow.Synth.No_1

[=========>          ]  45% progress in Host.IO_Flow.Synth.No_1

[=========>          ]  45% progress in Host.IO_Flow.Synth.No_0

[==========>         ]  50% progress in Host.IO_Flow.Synth.No_1

[==========>         ]  50% progress in Host.IO_Flow.Synth.No_0

[===========>        ]  55% progress in Host.IO_Flow.Synth.No_1

[===========>        ]  55% progress in Host.IO_Flow.Synth.No_0

[============>       ]  60% progress in Host.IO_Flow.Synth.No_0

[============>       ]  60% progress in Host.IO_Flow.Synth.No_1

[=============>      ]  65% progress in Host.IO_Flow.Synth.No_0

[=============>      ]  65% progress in Host.IO_Flow.Synth.No_1

[==============>     ]  70% progress in Host.IO_Flow.Synth.No_1

[==============>     ]  70% progress in Host.IO_Flow.Synth.No_0

[===============>    ]  75% progress in Host.IO_Flow.Synth.No_1

[===============>    ]  75% progress in Host.IO_Flow.Synth.No_0

[================>   ]  80% progress in Host.IO_Flow.Synth.No_0

[================>   ]  80% progress in Host.IO_Flow.Synth.No_1

[=================>  ]  85% progress in Host.IO_Flow.Synth.No_1

[=================>  ]  85% progress in Host.IO_Flow.Synth.No_0

[==================> ]  90% progress in Host.IO_Flow.Synth.No_1

[==================> ]  90% progress in Host.IO_Flow.Synth.No_0

[===================>]  95% progress in Host.IO_Flow.Synth.No_0

[===================>]  95% progress in Host.IO_Flow.Synth.No_1

[====================]  100% progress in Host.IO_Flow.Synth.No_1

[====================]  100% progress in Host.IO_Flow.Synth.No_0

MQSim finished at Thu Oct 22 18:08:03 2020

Total simulation time: 0:0:3

Writing results to output file .......
Flow Host.IO_Flow.Synth.No_0 - total requests generated: 11395 total requests serviced:11395
                   - device response time: 175 (us) end-to-end request delay:175 (us)
Flow Host.IO_Flow.Synth.No_1 - total requests generated: 11378 total requests serviced:11378
                   - device response time: 175 (us) end-to-end request delay:175 (us)
Simulation complete; Press any key to exit.
DanlinJia commented 3 years ago

Did I miss some configurations? Appreciate for any clues!

arashta commented 3 years ago

Can you please provide the input command line parameters for the simulator execution? Maybe you are missing the required parameter for the input workload specification.

DanlinJia commented 3 years ago

It works now! Thanks