code: def _save_multipart(
      path,
      df,
      index=False,
      verbose=True,
      type=None,
      sep=",",
      compression="snappy",
      header=True,
      json_dump_columns=None,
  ):
      cpu_count = multiprocessing.cpu_count()
      workers_count = int(round(cpu_count))
      parts = workers_count
  
      logger.log(
          15,
          "Save_multipart running pool with "
          + str(workers_count)
          + " workers",
      )
  
      paths = [
          path
          + "part-"
          + "0" * (5 - min(5, len(str(i))))
          + str(i)
          + ".parquet"
          for i in range(parts)
      ]
      df_parts = np.array_split(df, parts)
  
      full_chunks = [
          [
              path,
              df_part,
              index,
              verbose,
              type,
              sep,
              compression,
              header,
              json_dump_columns,
          ]
          for path, df_part in zip(paths, df_parts)
      ]
  
      multiprocessing_utils.execute_multiprocessing(
          workers_count=workers_count,
          transformer=_save_multipart_child,
          chunks=full_chunks,
      )
  
      logger.log(15, "Saved multipart file to " + str(path))
  
file_path: autogluon/common/src/autogluon/common/savers/save_pd.py
imports: import json
  import logging
  import multiprocessing
  import os
  from io import StringIO
  from typing import List, Optional
  import numpy
  import pandas
  from ..utils import multiprocessing_utils, s3_utils
label_desc: Use image node_id 3 for calling a global function with example usage: _save_multipart(path, df, index, verbose, type, sep, compression, header, json_dump_columns) without return types