In this paper, we present an architecture of an Adaptive Communication System (ACS) that provides applications with programmable communication, control, and management services that can be adopted dynamically to maximize application performance at runtime. ACS supports adaptive and scalable communication services that select the appropriate multicast/broadcast algorithms for a given class of applications. These algorithms take into consideration both the application requirements and the load of computing and communication systems. We overview the ACS architecture and then describe our approach to implement the ACS group communication services. We introduce two procedures (Resource Aware procedure and Application Aware procedure) to build the appropriate multicast tree that takes into consideration both the characteristics and load conditions of machines as well as the group communication patterns of a given application. We develop analytical techniques and new metric measures to characterize and quantify the performance of a multicast tree. We also present our preliminary performance results that show significant performance gain can be achieved from using ACS multicast algorithms.