# Tracker in distributed setting (single node DDP or multinode DDP)

**URL:** <https://discuss.huggingface.co/t/tracker-in-distributed-setting-single-node-ddp-or-multinode-ddp/22281>\
**Category:** 🤗Accelerate\
**Created:** [August 29, 2022, 7:26pm UTC](https://discuss.huggingface.co/t/tracker-in-distributed-setting-single-node-ddp-or-multinode-ddp/22281 "2022-08-29T19:26:42Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![VictorSanh](https://sea2.discourse-cdn.com/hellohellohello/user_avatar/discuss.huggingface.co/victorsanh/32/21405_2.png) [@VictorSanh](https://discuss.huggingface.co/u/VictorSanh)\
**Post date:** [August 29, 2022, 7:26pm UTC](https://discuss.huggingface.co/t/tracker-in-distributed-setting-single-node-ddp-or-multinode-ddp/22281/1 "2022-08-29T19:26:42Z")

</div>

When in a distributed setting, should the trackers (for instance `accelerate.tracking.TensorBoardTracker`) be defined only by the main process (i.e. wrapped inside a `accelerator.is_main_process` condition) or all the processes?

For reference, wandb allows both with slightly different outputs: [Distributed Training - Documentation](https://docs.wandb.ai/guides/track/advanced/distributed-training#logging-distributed-training-experiments-with-w-and-b)

---

<div class="post-metadata">

**Author:** ![muellerzr](https://sea2.discourse-cdn.com/hellohellohello/user_avatar/discuss.huggingface.co/muellerzr/32/21583_2.png) [@muellerzr](https://discuss.huggingface.co/u/muellerzr)\
**Post date:** [August 29, 2022, 9:09pm UTC](https://discuss.huggingface.co/t/tracker-in-distributed-setting-single-node-ddp-or-multinode-ddp/22281/2 "2022-08-29T21:09:49Z")

</div>

> [@VictorSanh](#):
>
> be defined only by the main process (i.e. wrapped inside a `accelerator.is_main_process` condition) or all the processes?

Accelerate only supports on the main process 🙂 If there is a need or desire to do logging across all of them, we can support that. But all of the logging functionalities are purposefully limited to just the main process.

Also you don’t need to do `if accelerator.is_main_process` for init specifically if you are building off main. (This will be propagated to the next release)
