Scalable Parallel  Computing: Technology, Architecture,  Programming