code: def test_output_with_name(workflow_start_regular):
      @ray.remote
      def double(v):
          return 2 * v
  
      inner_task = double.options(
          **workflow.options(task_id="inner")
      ).bind(1)
      outer_task = double.options(
          **workflow.options(task_id="outer")
      ).bind(inner_task)
      result = workflow.run_async(outer_task, workflow_id="double")
      inner = workflow.get_output_async("double", task_id="inner")
      outer = workflow.get_output_async("double", task_id="outer")
  
      assert ray.get(inner) == 2
      assert ray.get(outer) == 4
      assert ray.get(result) == 4
  
      @workflow.options(task_id="double")
      @ray.remote
      def double_2(s):
          return s * 2
  
      inner_task = double_2.bind(1)
      outer_task = double_2.bind(inner_task)
      workflow_id = "double_2"
      result = workflow.run_async(outer_task, workflow_id=workflow_id)
  
      inner = workflow.get_output_async(workflow_id, task_id="double")
      outer = workflow.get_output_async(workflow_id, task_id="double_1")
  
      assert ray.get(inner) == 2
      assert ray.get(outer) == 4
      assert ray.get(result) == 4
  
file_path: ray/python/ray/workflow/tests/test_basic_workflows_2.py
imports: import pytest
  import ray
  from filelock import FileLock
  from ray._private.test_utils import SignalActor
  from ray import workflow
  from ray.tests.conftest import *
  from ray._private.test_utils import skip_flaky_core_test_premerge
label_desc: Use image node_id 7 for calling a global function with example usage: test_output_with_name(workflow_start_regular) and returns: unknown, unknown