Local filtering without SSD

Hi,

Can we run a Local Filtering job without SSD?
We installed with “–nossd” optioin.
Other jobs are working nicely without SSD.

Thanks,

Hi @Tasuku, do you mean Local Refinement, or Local Filtering?
Local Filtering does not seem to require an SSD already (since it does not use particles). And Local Refinement has an option for not using the SSD

Hi, not sure if this issue is actually different, but when i start a local filtering job it hangs in queue stating that the ssd is unavailable, i don’t see an option to disable it and it’s strange if it doesn’t use a cache anyway. I also installed cryosparc with the -nossd option, is the solution to enable ssd and just point to a directory?

thanks,

Hi @haraQQiri

See " Set a default parameter for the project"
In your case, you will need to set the option to “Disable by default” for SSD caching. This will ensure all jobs created with the project don’t try to use the SSD.

Hi,

thanks for the response. I do have the project level default set to ‘disable by default’ for the project this workspace. i think it wasn’t there initially when i created this project but i had changed it before making this workspace and i can see other jobs start with ssd disabled, just the local filtering job will sit in queue with the ssd not available message

thanks for your help, let me know what you think

Hi @haraQQiri,

Thats odd, is it possible if you can open the Local Filtering job card, navigate to the “Metadata” tab, and copy and paste all the contents in that window here?

yes, thank you for looking, the metadata tab for the queued job:

{
  "_id": {
    "_str": "5eebd5741a7a9f294ec76ef0"
  },
  "children": [],
  "cloned_from": null,
  "created_at": "2020-06-18T20:58:28.579Z",
  "deleted": false,
  "parents": [
    "J83"
  ],
  "project_uid": "P5",
  "queue_message": "SSD not available",
  "status": "queued",
  "title": "New Job J87",
  "type": "local_filter",
  "ui_tile_height": 1,
  "ui_tile_images": [],
  "ui_tile_width": 1,
  "uid": "J87",
  "workspace_uids": [
    "W2"
  ],
  "experiment_worker_path": null,
  "output_group_images": {},
  "project_uid_num": 5,
  "started_at": null,
  "waiting_at": null,
  "params_spec": {},
  "params_base": {
    "localfilter_sharpen_max_res": {
      "hidden": false,
      "advanced": true,
      "title": "Maximum resolution for sharpening",
      "section": "local filter",
      "type": "number",
      "order": 4,
      "value": null,
      "desc": "Maximum resolution in Angstrom the sharpening would proceed"
    },
    "localfilter_kernel_type": {
      "hidden": false,
      "advanced": false,
      "title": "Filter type to apply",
      "section": "local filter",
      "type": "string",
      "order": 2,
      "value": "lanczos",
      "desc": "The filter type to apply on the refined structure. Options are 'lanczos' and 'gaussian'."
    },
    "localfilter_interpolation_size": {
      "hidden": false,
      "advanced": true,
      "title": "Expected resolution map width after interpolation",
      "section": "local filter",
      "type": "number",
      "order": 5,
      "value": null,
      "desc": "The width of volume after interpolation if the input maps are downsampled."
    },
    "localfilter_sharpen_b_factor": {
      "hidden": false,
      "advanced": false,
      "title": "B-factor for sharpening",
      "section": "local filter",
      "type": "number",
      "order": 1,
      "value": null,
      "desc": "If not set, B-factor is estimated from refined map"
    },
    "localfilter_use_mask": {
      "hidden": false,
      "advanced": false,
      "title": "Only filter volume within a pre-defined mask",
      "section": "local filter",
      "type": "boolean",
      "order": 0,
      "value": true,
      "desc": "Whether use a refined mask to restrict locally filtered regions. By default it uses refined mask from local resolution estimate job"
    },
    "localfilter_compute_facility": {
      "hidden": false,
      "advanced": false,
      "title": "Use GPU or CPU for computation",
      "section": "local filter",
      "type": "string",
      "order": 3,
      "value": "GPU",
      "desc": "The computation facility to use for local processing. Options are 'CPU' and 'GPU'. Leave as default"
    }
  },
  "resources_allocated": {},
  "is_experiment": false,
  "bench": {},
  "run_on_master_direct": false,
  "output_result_groups": [
    {
      "num_items": 0,
      "uid": "J87-G0",
      "title": "Filtered volume",
      "passthrough": false,
      "description": "",
      "contains": [
        {
          "passthrough": false,
          "type": "volume.blob",
          "uid": "J87-R0",
          "name": "map_filtered",
          "group_name": "volume"
        }
      ],
      "type": "volume",
      "name": "volume"
    }
  ],
  "PID_main": null,
  "last_scheduled_at": null,
  "tokens_requested_at": null,
  "PID_workers": [],
  "token_acquired_at": null,
  "queue_index": 0,
  "output_results": [
    {
      "num_items": [],
      "uid": "J87-R0",
      "passthrough": false,
      "min_fields": [
        [
          "path",
          "O"
        ],
        [
          "shape",
          "3u4"
        ],
        [
          "psize_A",
          "f4"
        ]
      ],
      "group_name": "volume",
      "metafiles": [],
      "description": "A locally filtered density map",
      "name": "map_filtered",
      "title": "Filtered volume",
      "versions": [],
      "type": "volume.blob"
    }
  ],
  "cluster_job_id": null,
  "interactive_hostname": null,
  "interactive": false,
  "queue_status": "waiting_resources",
  "job_type": "local_filter",
  "completed_at": null,
  "enable_bench": false,
  "interactive_port": null,
  "created_by_job_uid": null,
  "uid_num": 87,
  "errors_build_inputs": {},
  "errors_build_params": {},
  "job_dir": "J87",
  "errors_run": [],
  "queued_to_lane": "default",
  "version": "v2.15.0",
  "queued_at": "2020-06-18T20:58:56.865Z",
  "launched_at": null,
  "run_as_user": null,
  "queued_job_hash": null,
  "description": "Enter a description.",
  "failed_at": null,
  "input_slot_groups": [
    {
      "name": "volume",
      "title": "Volume",
      "repeat_allowed": false,
      "connections": [
        {
          "slots": [
            {
              "job_uid": "J83",
              "group_name": "volume",
              "version": "F",
              "result_name": "map_half_A",
              "slot_name": "map_half_A",
              "result_type": "volume.blob"
            },
            {
              "job_uid": "J83",
              "group_name": "volume",
              "version": "F",
              "result_name": "map_half_B",
              "slot_name": "map_half_B",
              "result_type": "volume.blob"
            },
            {
              "job_uid": "J83",
              "group_name": "volume",
              "version": "F",
              "result_name": "mask_refine",
              "slot_name": "mask_refine",
              "result_type": "volume.blob"
            },
            {
              "job_uid": "J83",
              "group_name": "volume",
              "version": "F",
              "result_name": "map",
              "slot_name": null,
              "result_type": "volume.blob"
            },
            {
              "job_uid": "J83",
              "group_name": "volume",
              "version": "F",
              "result_name": "map_sharp",
              "slot_name": null,
              "result_type": "volume.blob"
            },
            {
              "job_uid": "J83",
              "group_name": "volume",
              "version": "F",
              "result_name": "mask_fsc",
              "slot_name": null,
              "result_type": "volume.blob"
            },
            {
              "job_uid": "J83",
              "group_name": "volume",
              "version": "F",
              "result_name": "mask_fsc_auto",
              "slot_name": null,
              "result_type": "volume.blob"
            },
            {
              "job_uid": "J83",
              "group_name": "volume",
              "version": "F",
              "result_name": "precision",
              "slot_name": null,
              "result_type": "volume.blob"
            }
          ],
          "job_uid": "J83",
          "group_name": "volume"
        }
      ],
      "count_max": 1,
      "slots": [
        {
          "type": "volume.blob",
          "title": "Unfiltered halfmap A",
          "optional": false,
          "description": "Unfiltered and unsharpened half map A that is used to compute GS-FSC",
          "name": "map_half_A"
        },
        {
          "type": "volume.blob",
          "title": "Unfiltered halfmap B",
          "optional": false,
          "description": "Unfiltered and unsharpened half map B that is used to compute GS-FSC",
          "name": "map_half_B"
        },
        {
          "type": "volume.blob",
          "title": "Local resolution map",
          "optional": false,
          "description": "Local resolution estimate map",
          "name": "map_locres"
        },
        {
          "type": "volume.blob",
          "title": "Refinement mask",
          "optional": true,
          "description": "A mask that wraps around the refinement density map",
          "name": "mask_refine"
        }
      ],
      "type": "volume",
      "count_min": 1,
      "description": "Unfiltered map and local resolution map"
    }
  ],
  "resources_needed": {
    "slots": {
      "GPU": 1,
      "RAM": 1,
      "CPU": 2
    },
    "fixed": {
      "SSD": true
    }
  },
  "job_dir_size": 0,
  "killed_at": null,
  "params_secs": {
    "local filter": {
      "desc": "",
      "order": 0,
      "title": "Local filtering"
    }
  },
  "created_by_user_id": "5db39f8c81cbc541af16e023",
  "PID_monitor": null,
  "running_at": null,
  "ui_layouts": {
    "P5W2": {
      "show": true,
      "top": 6152,
      "height": 192,
      "width": 152,
      "groups": [],
      "floater": false,
      "left": 3759
    },
    "P5": {
      "show": true,
      "top": 6192,
      "height": 192,
      "width": 152,
      "groups": [],
      "floater": false,
      "left": 5002
    }
  },
  "last_exported": "2020-06-18T20:58:37.434Z",
  "queued_to_hostname": false,
  "queued_to_gpu": false,
  "no_check_inputs_ready": false
}

Hi @haraQQiri,

You’re correct- the SSD value for this job is actually hard-coded to be True! This is a bug. Unfortunately, until we fix it, you’re going to have to do some manual work to remove this requirement for the job to run.

First, build a Local Filtering job, and set up it’s inputs and parameters as you normally would. Then, on the command line, enter the following command:

cryosparcm cli "update_job('<puid>', '<juid>', {'resources_needed.fixed.SSD': False})"

Please note <puid> and <job_uid> are the project and job UIDs of your job, respectively (e.g. “P23”, “J40”).

You can now queue your job normally, and it will run without requiring the SSD.

Sorry for the inconvenience, and thanks for pointing this out!

Hi @stephan,

thank you very much for the workaround! local filtering job gets through the queue

thanks!

Hi @haraQQiri, @Tasuku,

This bug is now fixed in cryoSPARC v3.0, which you can update to now!
Screen Shot 2020-12-09 at 11.42.22 AM

1 Like