A Practical Programming Model For The Multi-Core Era by