Friday, January 27, 2012

How to optimize your home-cooking time

You can only do things one at a time so I take the concept of concurrency processing to optimize cooking time. Hence, the main goal is to have a good scheduler (your brain) that knows when to switch tasks. Objective: max{(output + quality)/time}

Many recipes naturally takes into account about all these procedures, but you aren't likely to be cooking everything from just one recipe. It's more likely to be multiple recipes at the same time. So here are the main considerations as food for thought:
  1. Ingredient Preparation -
    Each ingredient takes different time to prepare (skinning pearl onions vs chopping + cleaning a zucchini). Naturally you'd want to marinate meat beforehand so you might need to quickly prepare them ahead of time (night before, in the mornings before work). If you can't, you should do that first so it allows time to help marinate the meat whilst you prepare other ingredients.
  2. Resource Allocation (Equipment) - 
    Pots/Pans/Blenders are all cooking equipment that can be used simultaneously. If you need to cook multiple dishes then you should try to plan dishes that uses separate equipment. Otherwise you'll spend a lot of time to wash and clean your pots/pan before you can reuse it again.
  3. Resource Allocation (Energy) -
    Oven/Steamer are examples of cooking energy source. Just as the limitation of equipment, you only have limited stove top space or racks in a steamer. Ovens takes time to preheat and water takes time to boil.
  4. Prioritization -
    Base it on the cooking time needed by various items. Start with items that takes longer to cook and less attention required, e.g. stews/soup then anything on the pans to be last as it is hardest to control its timing. 
  5. Maximize Parallelism
    You as a human, has limited parallel processing capability. However, we can start things let it cook in parallel. If one resource is being locked by one item, then look at your other resources that can be used. Plan your meals as such to minimize the time required
    NERD ALERT! Look at Minimum execution time for multiprocessor scheduling
    (http://www.kasahara.elec.waseda.ac.jp/schedule/intro_e.html)
Simple Example:
Marinate drumsticks > preheat oven > prepare rice  > place drumsticks in oven (~30mins) > chop vegetables > steam rice (~20mins) > wash raw drumstick container > stir-fry vegetables > Drumsticks ready/rice steamed/vegetables cooked
All done in ~30mins and you get both meat vegetables and most importantly, all freshly cooked! 

Typically we don't have plate warmers at home, so it is important to plan so that all dishes are done at the same time. Freshness with right cooking time is critical in any recipe for best serving effects.

Good luck!
 

1 comment:

  1. Is there an appetizer for that?
    Looks like you'll want... a multi-breaded process.
    Why do software engineers use chopsticks when eating? Because they work in parallel.
    OK, stick a fork() in me, I'm done.

    ;)

    ReplyDelete