def METHOD_NAME(self):
    dataset = MAG240MDataset(self.data_dir)
    log.info(dataset.num_authors)
    log.info(dataset.num_institutions)
    author_path = f'{dataset.dir}/author_feat.npy'
    path = f'{dataset.dir}/institution_feat.npy'
    t = time.perf_counter()
    if not osp.exists(path):
        log.info('get institution_feat...')
        author_feat = np.memmap(
            author_path,
            dtype=np.float16,
            shape=(dataset.num_authors, self.num_features),
            mode='r')
        # author
        edge_index = dataset.edge_index('author', 'institution')
        edge_index = edge_index.T
        log.info(edge_index.shape)
        institution_graph = Graph(
            edge_index, num_nodes=dataset.num_institutions)
        institution_graph.tensor()
        log.info('finish institution graph')
        institution_x = np.memmap(
            path,
            dtype=np.float16,
            mode='w+',
            shape=(dataset.num_institutions, self.num_features))
        dim_chunk_size = 64
        degree = paddle.zeros(
            shape=[dataset.num_institutions, 1], dtype='float32')
        temp_one = paddle.ones(
            shape=[edge_index.shape[0], 1], dtype='float32')
        degree = scatter(
            degree,
            overwrite=False,
            index=institution_graph.edges[:, 1],
            updates=temp_one)
        log.info('finish degree')
        for i in tqdm(range(0, self.num_features, dim_chunk_size)):
            j = min(i + dim_chunk_size, self.num_features)
            inputs = get_col_slice(
                author_feat,
                start_row_idx=0,
                end_row_idx=dataset.num_authors,
                start_col_idx=i,
                end_col_idx=j)
            inputs = paddle.to_tensor(inputs, dtype='float32')
            outputs = institution_graph.send_recv(inputs)
            outputs = outputs / degree
            outputs = outputs.astype('float16').numpy()
            del inputs
            save_col_slice(
                x_src=outputs,
                x_dst=institution_x,
                start_row_idx=0,
                end_row_idx=dataset.num_institutions,
                start_col_idx=i,
                end_col_idx=j)
            del outputs
        institution_x.flush()
        del institution_x
        log.info(f'Done! [{time.perf_counter() - t:.2f}s]')