WIth just 4 levels, you already have more than 1 million elements. If you have an average as low as 4 elements for each of the remaining 6 parameters, you would be looking at roughly 4 billion function evaluations, and just storing the outputs would take on the order of 32 gigabytes.
This is going to take time to do for non-trivial function MySIm() .
You might see in other postings that people often use ndgrid() to build arrays of all of the combinations, and then use arrayfun() to execute the function over each combination in turn. I estimate that the memory to store all those combinations would be on the order of 350 gigabytes in your situation -- not feasible.
I would therefore suggest that you use what has sometimes been called an "odometer" pattern. I posted generalized code for that at https://www.mathworks.com/matlabcentral/answers/623358-get-a-combination-of-unique-paths-for-given-pair-of-numbers#comment_1082638
odometer pattern execution is not the fastest of executions (significant amounts of overhead in iterating through all of the possibilities), but has the advantage of taking very little memory, and of clearly eventually finishing.
Oh yes, it is crucial that you pre-allocate the output arrays.