def plot_allocation(self):

        """
        This function ...
        :return:
        """

        # Determine the path to the plot file
        plot_path = fs.join(self.output_path, "allocation.pdf")

        # Initialize figure
        plt.figure()
        plt.clf()

        # Plot the memory usage of the root process
        plt.plot(self.data[0].times, self.data[0].memory, label="total memory usage")

        # Plot the memory allocation of the root process
        plt.step(self.allocation.times, self.allocation.cumulative, where="post", linestyle="--", label="allocated array memory")

        # Set the axis labels
        plt.xlabel("Time (s)", fontsize='large')
        plt.ylabel("Memory usage (GB)", fontsize='large')

        # Set the plot title
        plt.title("Memory (de)allocation")

        # Set the legend
        plt.legend(loc='lower right', prop={'size': 8})

        # Save the figure
        plt.savefig(plot_path, bbox_inches='tight', pad_inches=0.25)
        plt.close()