def run_batch_benchmark()

in ember/benchmark.py [0:0]


    def run_batch_benchmark(self) -> List[Dict]:
        """Run benchmark with multiple batched requests concurrently."""
        results = []
        total_batches = self.config.total_requests
        
        print(f"\nRunning {total_batches} requests with {self.config.max_batch_size} documents each...")
        start_time = time.time()
        
        with ThreadPoolExecutor(max_workers=self.config.concurrent_requests) as executor:
            futures = [executor.submit(self.send_request) for _ in range(total_batches)]
            
            # Process results as they complete
            for i, future in enumerate(futures, 1):
                result = future.result()
                results.append(result)
                
                # Print progress every 10%
                if i % (total_batches // 10) == 0 or i == total_batches:
                    progress = (i / total_batches) * 100
                    elapsed = time.time() - start_time
                    rate = i / elapsed
                    print(f"Progress: {progress:.1f}% ({i}/{total_batches}) - Rate: {rate:.2f} requests/sec")
        
        return results