Data-centric applications, from scientific simulation to emerging machine learning and data mining algorithms, are becoming prevalent. Memory-centric computing is a potential solution to overcome the unprecedented memory performance bottleneck for such applications. We propose an integrated, full-stack, cross-layer system to enable Unified Memory-centric Computing (UniMCC). We target systems that have near-memory data processors (NDPs) as well as a disaggregated shared memory pool. We work on the entire system stack to utilize these newly proposed hardware solutions from a unified viewpoint of architecture, SW/HW interface, code generation and runtime support, and performance modeling and optimization. The goal of the proposed UniMCC system is to maximize the potential of NDPs and disaggregated memories and lift memory-centric computing to a new level. <br/><br/>The outcomes of the project will have significant broader impacts on research communities, society, and education. With the cross-layer collaborative design, the proposed research can bring state-of-the-art techniques together to make the memory-centric paradigm more feasible. The success of the project will enable experiments and deployment of data-centric applications at larger scales, facilitating research in the AI area and improving the availability of large-scale data mining and machine learning systems for solving real-world problems. Besides training Ph.D. students, this project will deliver several course developments, curricular update activities, and outreach activities to broaden participation in computing.<br/><br/>This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.