Exemple #1
0
    def run_single_ec2(self,
                       run_method,
                       params,
                       bucket_name,
                       s3_log_name=None,
                       add_date_to_logname=True,
                       region='us-east-2',
                       instance_type='c4.xlarge',
                       args=None,
                       extra_mounts=None):
        if extra_mounts is None:
            extra_mounts = []
        if s3_log_name is None:
            s3_log_name = 'unnamed_experiment'
        if add_date_to_logname:
            datestamp = datetime.now().strftime('%Y_%m_%d')
            s3_log_name = '%s_%s' % (datestamp, s3_log_name)

        mode_ec2 = doodad.mode.EC2AutoconfigDocker(
            image=self.image,
            region=region,
            s3_bucket=bucket_name,
            instance_type=instance_type,
            spot_price=INSTANCE_TO_PRICE[instance_type],
            s3_log_prefix=s3_log_name,
        )
        run_single_doodad(run_method,
                          params,
                          run_mode=mode_ec2,
                          python_cmd=self.python_cmd,
                          mounts=self.mounts + [self.mount_out_s3] +
                          extra_mounts,
                          args=args)
Exemple #2
0
    def run_single_gcp(self,
                       run_method,
                       params,
                       s3_log_name=None,
                       add_date_to_logname=True,
                       region='us-west1-a',
                       args=None,
                       extra_mounts=None,
                       **gcp_args):
        if extra_mounts is None:
            extra_mounts = []
        if s3_log_name is None:
            s3_log_name = 'unnamed_experiment'
        if add_date_to_logname:
            datestamp = datetime.now().strftime('%Y_%m_%d')
            s3_log_name = '%s_%s' % (datestamp, s3_log_name)

        mode_ec2 = doodad.mode.GCPDocker(
            image=self.image,
            zone=region,
            gcp_bucket_name=self.gcp_bucket_name,
            gcp_log_prefix=s3_log_name,
            image_name=self.gcp_image,
            image_project=self.gcp_project,
            **gcp_args,
        )
        run_single_doodad(run_method,
                          params,
                          run_mode=mode_ec2,
                          python_cmd=self.python_cmd,
                          mounts=self.mounts + [self.mount_out_gcp] +
                          extra_mounts,
                          args=args)
Exemple #3
0
                          extra_mounts=None,
                          async=True):
        if extra_mounts is None:
            extra_mounts = []
        if local_output_dir is None:
            mount_out_local = self.mount_out_local
        else:
            mount_out_local = mount.MountLocal(
                local_dir=local_output_dir,
                mount_point=self.docker_output_dir,
                output=True)
        self.mode_local. async = async
        run_single_doodad(run_method,
                          params,
                          run_mode=self.mode_local,
                          python_cmd=self.python_cmd,
                          mounts=self.mounts + [mount_out_local] +
                          extra_mounts,
                          args=args)

    def run_sweep_ec2(self,
                      run_method,
                      params,
                      bucket_name,
                      s3_log_name=None,
                      add_date_to_logname=True,
                      region='us-east-2',
                      instance_type='c4.xlarge',
                      repeat=1,
                      args=None,
                      extra_mounts=None):