class_docstr: Tests for ops in horovod.torch.
class_docstr_tok: ["Tests","for","ops","in","horovod.torch","."]
code: def test_timeline(self):
      with temppath() as t:
          with env(
              HOROVOD_TIMELINE=t, HOROVOD_TIMELINE_MARK_CYCLES="1"
          ):
              hvd.init()
  
              # Perform a simple allreduce operation
              hvd.allreduce(
                  torch.tensor([1, 2, 3], dtype=torch.float32),
                  name="test_allreduce",
              )
  
              # Wait for it to register in the timeline.
              time.sleep(0.1)
  
              if hvd.rank() == 0:
                  with open(t, "r") as tf:
                      timeline_text = tf.read()
                      assert (
                          "allreduce.test_allreduce" in timeline_text
                      ), timeline_text
                      assert (
                          "NEGOTIATE_ALLREDUCE" in timeline_text
                      ), timeline_text
                      assert "ALLREDUCE" in timeline_text, timeline_text
                      assert (
                          "CYCLE_START" in timeline_text
                      ), timeline_text
  
file_path: horovod/test/parallel/test_timeline.py
imports: import torch
  import unittest
  import warnings
  import os
  import sys
  import time
  import horovod.torch
  from horovod.common.util import env
  from common import temppath
label_desc: Use image node_id 2 for calling the TimelineTests obj's underlying member method code with example usage: obj.test_timeline() without return types