code: def _create_model(
      embedding_size: int,
      with_fsdp: bool,
      process_group,
      flatten_parameters: bool = True,
  ):
      model = ConvolutionalModel(
          with_fsdp=with_fsdp,
          process_group=process_group,
          embedding_size=embedding_size,
      ).cuda()
      if with_fsdp:
          return FullyShardedDataParallel(
              model,
              process_group=process_group,
              flatten_parameters=flatten_parameters,
          )
      else:
          return model
  
imports: import functools
  import os
  import tempfile
  from parameterized import parameterized
  import pytest
  import torch
  import torch.distributed
  import torch.multiprocessing
  import torch.nn
  from torch.optim import Adam
  from fairscale.fair_dev.testing.testing import in_temporary_directory, skip_if_single_gpu, temp_files_ctx
  from fairscale.nn import FullyShardedDataParallel
  from tests.nn.data_parallel.test_fsdp import DistributedTest, MixtureOfExperts, rename_test, spawn_and_init
label_desc: Use image node_id 1 for calling a global function with example usage: _create_model(embedding_size, with_fsdp, process_group, flatten_parameters) and returns: FullyShardedDataParallel, model