  Noise is a significant obstacle to quantum computing, and $ZZ$ crosstalk is
one of the most destructive types of noise affecting superconducting qubits.
Previous approaches to suppressing $ZZ$ crosstalk have mainly relied on
specific chip design that can complicate chip fabrication and aggravate
decoherence. To some extent, special chip design can be avoided by relying on
pulse optimization to suppress $ZZ$ crosstalk. However, existing approaches are
non-scalable, as their required time and memory grow exponentially with the
number of qubits involved. To address the above problems, we propose a scalable
approach by co-optimizing pulses and scheduling. We optimize pulses to offer an
ability to suppress $ZZ$ crosstalk surrounding a gate, and then design
scheduling strategies to exploit this ability and achieve suppression across
the whole circuit. A main advantage of such co-optimization is that it does not
require special hardware support. Besides, we implement our approach as a
general framework that is compatible with different pulse optimization methods.
We have conducted extensive evaluations by simulation and on a real quantum
computer. Simulation results show that our proposal can improve the fidelity of
quantum computing on $4{\sim}12$ qubits by up to $81\times$ ($11\times$ on
average). Ramsey experiments on a real quantum computer also demonstrate that
our method can eliminate the effect of $ZZ$ crosstalk to a great extent.
