abstraction control parallel language programming parallel abstraction