Extending Application Runtime Systems For Effective Data Tiering On Complex Memory Platforms