Describir: Scalable Asynchronous Actor-Based Approaches for Distributed-Memory Parallel Applications