OutOfMemoryException when using large TMs over the API

Hello,

This is a follow-up post from community.rws.com/.../114465 as requested.

We are still experiencing issues during the analysis or pretranslation when processing projects through the Studio API when using large TMs (from 30,000 TUs for some languages up to more than 500,000 TUs for some others). This does not happen consistently - it seems to happen more frequently in projects with multiple language pairs and/or with multiple files. Previously, the OutOfMemoryExceptions were also occurring with smaller TMs but big files (around 30 MB), but this seems to have been resolved in Studio 2022 after the October 2023 release. The problem does not occur directly in Studio.

Is there anything we can do on our side? We will be happy to share more info if required.

Best regards,
Bram van der Steen



Formatting
[edited by: Bram van der Steen at 11:07 AM (GMT 1) on 4 Sep 2024]
  • Hi , When using the current 32-bit based architecture, we can expect to encounter rare inherent limitations that can only be worked around to a certain extent. We are currently working on transitioning to a 64-bit architecture (no concrete ETA yet but we'll give updates when we get closer to it), which should help mitigate these issues significantly.

    In the meantime, one potential solution we recommend is looking at adopting our cloud services. Our cloud-based platform has been built for scale, so the expectation would be to alleviate many of these memory-related challenges and improve the overall experience with jobs and TMs of any size (we do have certain limits in place in the cloud based platform also, but those are more meant to protect the platform than anything you would encounter in automation).

    It would also be great if you could provide the exact stack traces of the OutOfMemoryExceptions you are encountering. Analyzing these traces will help us understand their frequency and any additional context. It would also be beneficial to have access to the larger TMs you are using plus the test files and languages used, so we can try and reproduce these issues. If you've shared these previously, please let us know, as we could also use them for testing with our upcoming 64-bit architecture.

    Additionally, until we gain more insights, it might also be intereting to explore memory management options on your end, such as freeing up memory between jobs, starting from fresh. This approach should help enhance memory efficiency.